我的ViewModel具有selected和selectable属性.两者都是布尔值.我希望我的视图有一个复选框,当selectable为true时启用,当selectable为false时禁用.什么是正确的剃刀语法来实现这一目标?
我在表格中的项目列表上尝试了下面的代码.无论可选值如何,每行都会返回一个禁用的复选框.
@Html.CheckBoxFor(modelItem => item.Selected, new { @disabled = !item.Selectable })
Shyju.. 77
这是不容易有达到这个if
条件中的辅助方法,因为所有的下方标记将呈现一个残疾人chechbox.
这应该在剃须刀中起作用.简单如果条件和渲染你想要的.
@if(item.Selected) { @Html.CheckBoxFor(modelItem => item.Selected) } else { @Html.CheckBoxFor(modelItem => item.Selected, new { @disabled = "disabled"}) }
您可以考虑编写一个自定义的html帮助程序,为此呈现正确的标记.
这是不容易有达到这个if
条件中的辅助方法,因为所有的下方标记将呈现一个残疾人chechbox.
<input type="checkbox" disabled> <input type="checkbox" disabled="disabled"> <input type="checkbox" disabled="false"> <input type="checkbox" disabled="no"> <input type="checkbox" disabled="enabled">
这应该在剃须刀中起作用.简单如果条件和渲染你想要的.
@if(item.Selected) { @Html.CheckBoxFor(modelItem => item.Selected) } else { @Html.CheckBoxFor(modelItem => item.Selected, new { @disabled = "disabled"}) }
您可以考虑编写一个自定义的html帮助程序,为此呈现正确的标记.
这将无效,因为<input disabled="anything" />
将导致禁用控件.应该禁用时,只需要一个@disabled属性.
尝试这样的事情:
@Html.CheckBoxFor(modelItem => item.Selected, item.Selectable ? (object)new {} : (object)new { @disabled = "disabled" })
请注意,您可能需要转换为 (object)