【发布时间】:2011-09-29 22:52:25
【问题描述】:
在我的 cshtml 文件中,我有很多这样的块:
@if(Model.foo)
{
<span>Hello World</span>
}
跨度存在的唯一原因是因为我找不到任何其他方法来强制它识别“Hello World”是 html 的一部分,除非我将它包围在 html 标记中。有没有不涉及在显示中添加无意义标签的代码转义的好方法?
【问题讨论】:
标签: asp.net-mvc-3 razor
在我的 cshtml 文件中,我有很多这样的块:
@if(Model.foo)
{
<span>Hello World</span>
}
跨度存在的唯一原因是因为我找不到任何其他方法来强制它识别“Hello World”是 html 的一部分,除非我将它包围在 html 标记中。有没有不涉及在显示中添加无意义标签的代码转义的好方法?
【问题讨论】:
标签: asp.net-mvc-3 razor
上面的答案很棒。我将包含一个指向 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
}
【讨论】:
许多开发人员在上面提供了许多方法 .. 这里还有一种在 MVC 4 中运行良好的方法 .. 我希望它也适用于 MVC 3 ..
@if(Model.foo)
{
@Html.Label("Hello World")
}
【讨论】:
您可以添加如下文本:
@if(Model.foo)
{
@:Hello World
}
当您使用@ razor 时,将其切换到代码块模式。因此,您需要如上所述指定文本。
【讨论】:
<text>Explicit HTML<text>
@(Explicit C#)
【讨论】:
@if(Model.foo)
{
@:Hello World
}
【讨论】:
您可以使用@: 转义:
@if(Model.foo)
{
@:Hello World
}
或者响应中没有输出的特殊<text>标签:
@if(Model.foo)
{
<text>Hello World</text>
}
【讨论】: