我正在尝试使用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,这样可以节省您在视图中执行的其他逻辑:)

10-06 07:35
查看更多