有没有办法终止MVC Razor @:line?

Shi*_*mmy 2 c# asp.net-mvc if-statement razor razorengine

考虑这个例子:

<input type="checkbox" @if (flag) { @: checked } />
Run Code Online (Sandbox Code Playgroud)

问题在于} />Razor引擎将其视为输出字符串的一部分.

我试过用括号但没有运气.

有没有办法@:在同一行中终止运算符,或者我必须将它拆分为其他行/使用三元运算符?

更新

如果值为true,我的请求的一个非常常见的用例可以是添加一个类:

<div class='container @(active ? "active")'/>
Run Code Online (Sandbox Code Playgroud)

因此,如果:三元运算符不存在,它会将其视为一元运算if符,但这只是一个愿望......

是我对C#UserVoice的建议.

Ale*_*kov 6

对于单个属性,您可以使用@value语法,也有复选框的特殊情况(请参阅Razor快速参考):

<input type="checkbox" checked="@flag" />
Run Code Online (Sandbox Code Playgroud)

您还可以使用<text>提供显式(而不是"直到行尾")结束标记的语法:

<input type="checkbox" @if (flag) { <text>checked</text> } />
Run Code Online (Sandbox Code Playgroud)