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

Is there a way to terminate MVC Razor @: line?

考虑这个例子:

<input type="checkbox" @if (flag) { @: checked } />

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

我试过使用括号但没有成功。

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

更新

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

<div class='container @(active ? "active")'/>

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

Here是我对 C# UserVoice 的建议。

对于单个属性,您可以使用 @value 语法,复选框也有特殊情况(参见 Razor quick reference ):

<input type="checkbox" checked="@flag" />

您还可以使用 <text> 提供显式(而不是 "up to end of the line")结束标记的语法:

<input type="checkbox" @if (flag) { <text>checked</text> } />