用于直接文本输出的MVC 3 Razor语法?

mat*_*to0 57 asp.net-mvc-3

使用Razor如何/可以编写直接文本而不是将其包装在某种类型的html标签中?

示例(这可以工作,但会添加额外的span标记):

@{ var foo = true; }
@if(foo) { <span>Yes</span> } else { <span>No</span> }
Run Code Online (Sandbox Code Playgroud)

我想让我的最终标记尽可能干净,没有额外的标签.

谢谢!

Rus*_*Cam 110

使用<text>标签

@{ var foo = true; }
@if(foo) { <text>Yes</text> } else { <text>No</text> }
Run Code Online (Sandbox Code Playgroud)

所述<text>标签信号的剃刀视图引擎写内容到输出.

或者,您可以使用 @:

@{ var foo = true; }
@if(foo) { @:Yes } else { @:No }
Run Code Online (Sandbox Code Playgroud)

  • 如果你把`@:Yes`和`@:No`放在不同的行上,一切都很好.我认为语法解析器在单行上解释`@:Yes ...`之后的所有内容,因此`@if(foo){...`的开头括号是无法匹配的. (4认同)

小智 11

这里值得注意的一点:

@:只能在@内使用

(如果像我这样的身体想知道为什么@:不起作用!)