我想禁用我的視圖中使用模型屬性的複選框。但是,在這兩種情況下,複選框都是禁用的。我不應該在下面的代碼中使用「」嗎?禁用視圖中的複選框
<%= Html.CheckBoxFor(c => c.HasList, new { disabled = (Model.CanModifyList) ? "" : "disabled" })%>
我想禁用我的視圖中使用模型屬性的複選框。但是,在這兩種情況下,複選框都是禁用的。我不應該在下面的代碼中使用「」嗎?禁用視圖中的複選框
<%= Html.CheckBoxFor(c => c.HasList, new { disabled = (Model.CanModifyList) ? "" : "disabled" })%>
即使您已設置disabled=""
它仍然歸類爲被禁用的元素將仍然有disabled
屬性。如果不使用JavaScript/JQuery,則必須在View中執行if語句。
多多包涵,因爲我已經習慣了剃刀語法,但它應該是這樣的:
<%if (model.CanModifyList) { %>
<%= Html.CheckBoxFor(c => c.HasList)%>
<% } else { %>
<%= Html.CheckBoxFor(c => c.HasList, new { disabled = "disabled" })%>
<% } %>
什麼會更好是,如果你創建了自己的HTML幫助(也許過載到CheckBoxFor
)返回了正確的HTML取決於模型屬性,這樣可以節省你在你的看法:)做額外的邏輯
@ mattytommo的代碼可以改寫爲
@{
if (model.CanModifyList)
{
@Html.CheckBoxFor(c => c.HasList)%>
}
else
{
@Html.CheckBoxFor(c => c.HasList, new { disabled = "disabled" })
}
}
是的。我試圖看看是否可以使用條件運算符,而不使用if/else。 – dotNetNewbie
@dotNetNewbie耶是唯一的方法來做到這一點將是一個Html幫手:) – mattytommo