MVC3 Razor:在代码块中显示html


131

在我的cshtml文件中,我有很多类似以下内容的块:

@if(Model.foo)
{
    <span>Hello World</span>
}

出现跨度的唯一原因是,除非我将其包围在html标签中,否则我找不到其他方法来强制它识别“ Hello World”是html的一部分。有没有一种好的方法可以避免不涉及在显示器上添加无意义标签的代码?

Answers:




10

您可以按以下方式添加文本:

@if(Model.foo)
{
    @:Hello World
}

使用@剃须刀时,将其切换到代码块模式。因此,您需要如上所述指定文本。



8

许多开发人员在上面提供了很多方法。.这是在MVC 4中可以正常工作的另一种方法。.我希望它也可以在MVC 3中工作。

@if(Model.foo)
{
    @Html.Label("Hello World")
}

0

上面的答案很棒。我将包含指向Scott Guthrie的文章的链接,因为它显示了更多示例和解释。

https://weblogs.asp.net/scottgu/asp-net-mvc-3-razor-s-and-lt-text-gt-syntax

@if (p.UnitsInStock == 0 {
  <text>
    Donec in ante vitae purus consequat laoreet ut elementum
    purus. Ut ut tempus nulla, quis ultrices est. Integer
    pharetra ante in lectus porta, a lacinia ex faucibus. 
    Aliquam magna risus, pretium vel neque at, laoreet 
    ultrices lectus. Morbi posuere luctus risus. Nullam 
    tincidunt massa egestas nunc tempor scelerisque.  
  </text>
}


@if (p.UnitsInStock == 0 {
  @: Line 1
  @: Line 2
  @: Line 3
}

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.