Asp.net mvc MVC3和选中属性的Razor视图中的三元运算符

Asp.net mvc MVC3和选中属性的Razor视图中的三元运算符,asp.net-mvc,asp.net-mvc-3,razor,ternary-operator,checked,Asp.net Mvc,Asp.net Mvc 3,Razor,Ternary Operator,Checked,我用这个: <input type="checkbox" value="@item.Id" checked="@(item.HasAccess ? "checked" : "")"/> 这是正确的:我的意思是当HasAccess为true时,然后checked=“checked”以及 HasAccess为false然后checked=”“但始终选中复选框,如何使用三元运算符并正确处理checked属性?不幸的是,在razor V1中,您必须这样做: <input type

我用这个:

<input type="checkbox" value="@item.Id" checked="@(item.HasAccess ? "checked" : "")"/>

这是正确的:我的意思是当
HasAccess
true
时,然后
checked=“checked”
以及
HasAccess
false
然后
checked=”“
但始终选中
复选框,如何使用三元运算符并正确处理
checked
属性?

不幸的是,在razor V1中,您必须这样做:

<input type="checkbox" value="@item.Id" @(item.HasAccess ? "checked=\"checked\"" : "") />

这是因为在HTML世界中,不管值是多少,只要属性存在,浏览器就会选中该框

在RazorV2中,这不是什么问题。请参阅下文的条件属性部分:


您在哪里使用此代码?如果你发布了更多的视图,那么我必须看到的更多上下文将有助于解决问题problem@Chris实际上,我只在网格组件或控件中看到了这一点,在MVC视图中从来没有看到过,在MVC视图中,您可以从中利用帮助程序,但ok:-)这是一个很好的替代方案(有一个带有复选框的示例):