我正在尝试使用Model属性禁用视图中的复选框。但是,在两种情况下,该复选框均处于禁用状态。我应该在以下代码中使用“”吗?
<%= Html.CheckBoxFor(c => c.HasList, new { disabled = (Model.CanModifyList) ? "" : "disabled" })%>
最佳答案
即使已设置disabled=""
,该元素仍将被归类为已禁用,因为该元素仍将具有disabled
属性。如果不使用JavaScript / JQuery,则必须在View中执行if语句。
因为我已经习惯了Razor语法,所以请耐心等待,但是它应该类似于:
<%if (model.CanModifyList) { %>
<%= Html.CheckBoxFor(c => c.HasList)%>
<% } else { %>
<%= Html.CheckBoxFor(c => c.HasList, new { disabled = "disabled" })%>
<% } %>
更好的是,如果您创建了自己的HTML Helper(可能是
CheckBoxFor
的重载),并且根据model属性返回了正确的HTML,这样可以节省您在视图中执行的其他逻辑:)