3

Model プロパティを使用してビューのチェックボックスを無効にしようとしています。ただし、どちらの場合も、チェックボックスは無効になっています。次のコードで "" を使用すべきではありませんか?

<%= Html.CheckBoxFor(c => c.HasList, new { disabled = (Model.CanModifyList) ? "" : "disabled" })%>
4

2 に答える 2

3

設定した場合でもdisabled=""、要素には引き続きdisabled属性があるため、無効として分類されます。JavaScript/JQuery を使用しないと、ビューで if ステートメントを実行する必要があります。

私は Razor 構文に慣れているので、ご容赦ください。ただし、次のようにする必要があります。

<%if (model.CanModifyList) { %>
<%= Html.CheckBoxFor(c => c.HasList)%> 
<% } else { %>
<%= Html.CheckBoxFor(c => c.HasList, new { disabled = "disabled" })%>
<% } %>

CheckBoxForモデル プロパティに依存する正しい HTML を返す独自の HTML ヘルパー (おそらく へのオーバーロード) を作成した場合は、さらに良いでしょう。そのようにして、ビューで追加のロジックを実行する必要がなくなります :)

于 2012-05-22T19:03:46.363 に答える