Razor视图中的三元运算符MVC3和Checked属性

Sae*_*eid 2 asp.net-mvc ternary-operator checked razor asp.net-mvc-3

我用这个:

<input type="checkbox" value="@item.Id" checked="@(item.HasAccess ? "checked" : "")"/>
Run Code Online (Sandbox Code Playgroud)

这工作正常:我的意思是,当HasAccesstrue那么checked="checked"HasAccessfalsechecked=""不过总是checkbox小号检查,我该如何使用三元运算和处理checked正确的属性?

Chr*_*ris 14

不幸的是,在剃须刀V1中,你必须这样做:

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

这是因为在HTML世界中,只要存在属性,无论值如何,都会告诉浏览器选中该框.

在Razor V2中,这不是一个问题.请参阅以下文章的条件属性部分:

http://vibrantcode.com/blog/2012/4/10/whats-new-in-razor-v2.html/