[英]ASP.NET MVC Razor syntax
以下是我想用Razor表达的内容:
<b>@parameterMapping.Title</b> (Category: @parameterMapping.Category.Title, Regexp: @parameterMapping.Regexp)
但为了使其可解析,我必须这样写:
<b>@parameterMapping.Title</b> <text>(Category: </text> @parameterMapping.Category.Title <text>, Regexp:</text> @parameterMapping.Regexp <text>)</text>
有没有更好的方法来解决这个问题?
你写下了什么:
<b>@parameterMapping.Title</b>
(Category: @parameterMapping.Category.Title, Regexp: @parameterMapping.Regexp)
实际上在Razor中有效。 我的猜测是你在一些有条件的或迭代的陈述中有所有这些( if
或foreach
等)。 在这种情况下,您可以将整个内容包装在<text>
:
@if(Foo) {
<text><b>@parameterMapping.Title</b>
(Category: @parameterMapping.Category.Title, Regexp: @parameterMapping.Regexp)</text>
}
您可以使用有效的HTML元素(如<p>
或<div>
代替<text>
<div>
。 这是因为默认情况下{
解析器处于“代码”模式并且需要标记标记切换到“标记”模式。
请注意,Razor执行标记匹配,这就是为什么你需要将if
语句的整个范围包含在标记中,如果你想将它们全部视为标记。 否则,不在标记内的所有内容都将被视为代码:
@if(Foo) {
// Treate as code
<text>
Markup
<div>More markup</div>
@EscapeIntoCode
</text>
// Treate as code again
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.