繁体   English   中英

ASP.NET MVC Razor语法

[英]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中有效。 我的猜测是你在一些有条件的或迭代的陈述中有所有这些( ifforeach等)。 在这种情况下,您可以将整个内容包装在<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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM