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

时间:2015-03-17 02:10:31

标签: c# asp.net-mvc if-statement razor razorengine

考虑这个例子:

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

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

我试过使用括号但没有运气。

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

更新

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

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

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

Here是我对C#UserVoice的建议。

1 个答案:

答案 0 :(得分:6)

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

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

您还可以使用<text>语法提供明确的(而不是“最后一行”)结束标记:

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