MVC3 Razor:在代码块中显示html

时间:2011-07-06 20:18:44

标签: asp.net-mvc-3 razor

在我的cshtml文件中,我有很多块有这样的东西:

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

跨度的唯一原因是因为我找不到任何其他方法强迫它识别“Hello World”是html的一部分,除非我将它包围在html标签中。有没有一种很好的方法来逃避不涉及向显示器添加无意义标签的代码?

6 个答案:

答案 0 :(得分:209)

您可以使用@:来逃避:

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

或响应中未输出的特殊<text>标记:

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

答案 1 :(得分:13)

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

答案 2 :(得分:9)

您可以按如下方式添加文字:

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

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

答案 3 :(得分:8)

<text>Explicit HTML<text>

@(Explicit C#)

答案 4 :(得分:8)

许多开发人员已经提供了很多方法。这里还有一个在MVC 4中工作得很好。我希望它也可以用于MVC 3 ..

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

答案 5 :(得分: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
}