MVC3 Razor: 在代码块中显示 html

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

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

存在 span 的唯一原因是,我找不到任何其他方法来强制它识别“ Hello World”是 html 的一部分,除非我用 html 标记包围它。有没有一种好的方法可以避免在显示中添加无意义的标记?

68016 次浏览

你可以用 @:来逃跑:

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

或者在响应中没有输出的特殊 <text>标签:

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

您可以添加以下文本:

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

当你使用 @剃须刀切换到代码块模式。因此你需要指定文本如上。

<text>Explicit HTML<text>


@(Explicit C#)

许多开发人员提供了许多上述方法。.这里还有一个在 MVC4中运行良好。.我希望它也适用于 MVC 3。.

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

以上答案都很棒。我将附上 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
}