我正在尝试使用Model属性禁用视图中的复选框。但是,在这两种情况下,都会禁用该复选框。我不应该在下面的代码中使用“”吗?
<%= Html.CheckBoxFor(c => c.HasList, new { disabled = (Model.CanModifyList) ? "" : "disabled" })%>
答案 0 :(得分:3)
即使你设置了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,那么更好的是,这样可以节省您在视图中执行其他逻辑: )
答案 1 :(得分:0)
@mattytommo的代码可以改写为
@{
if (model.CanModifyList)
{
@Html.CheckBoxFor(c => c.HasList)%>
}
else
{
@Html.CheckBoxFor(c => c.HasList, new { disabled = "disabled" })
}
}