Sib*_*Guy 4 .net c# asp.net asp.net-mvc razor
以下是我想用Razor表达的内容:
<b>@parameterMapping.Title</b> (Category: @parameterMapping.Category.Title, Regexp: @parameterMapping.Regexp)
Run Code Online (Sandbox Code Playgroud)
但为了使其可解析,我必须这样写:
<b>@parameterMapping.Title</b> <text>(Category: </text> @parameterMapping.Category.Title <text>, Regexp:</text> @parameterMapping.Regexp <text>)</text>
Run Code Online (Sandbox Code Playgroud)
有没有更好的方法来解决这个问题?
mar*_*ind 13
你写下了什么:
<b>@parameterMapping.Title</b>
(Category: @parameterMapping.Category.Title, Regexp: @parameterMapping.Regexp)
Run Code Online (Sandbox Code Playgroud)
实际上在Razor中有效.我的猜测是你在一些条件或迭代语句(if或foreach等)中拥有所有这些.在这种情况下,您可以将整个事物包装在<text>:
@if(Foo) {
<text><b>@parameterMapping.Title</b>
(Category: @parameterMapping.Category.Title, Regexp: @parameterMapping.Regexp)</text>
}
Run Code Online (Sandbox Code Playgroud)
而不是<text>你可以使用像<p>或的有效HTML元素<div>.这是因为默认情况下{解析器处于"代码"模式并且需要标记标记切换到"标记"模式.
请注意,Razor执行标记匹配,这就是为什么if如果要将所有语句都视为标记,则需要将语句的整个范围包含在标记中.否则,不在标记内的所有内容都将被视为代码:
@if(Foo) {
// Treate as code
<text>
Markup
<div>More markup</div>
@EscapeIntoCode
</text>
// Treate as code again
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6981 次 |
| 最近记录: |