私の目標はです。条件に応じてビューに渡されるモデルオブジェクトのステータスに応じてドロップダウンを無効にします。以下にはないタグヘルパーから<select>を条件付きで無効にするにはどうすればよいですか?
<select class="form-control" asp-for="Priority" asp-items="@priorityList" disabled></select>
:
次のコードは正しく無効<select>
タグ(ただし、条件付き)をレンダリングします。属性disabled
は、レンダリングされたページのページソースに表示されない:
@{ string disabled = Model.CaseMode == Mode.Active ? "" : "disabled"; }
<select class="form-control" asp-for="Priority" asp-items="@priorityList" @disabled></select>
また、次のようにも<select>
タグは無効になりません。
<select class="form-control" asp-for="Priority" asp-items="@priorityList" @((Model.CaseMode == Mode.Closed) ? "disabled" : "")></select>
私は、問題は、文字列置換をテンプレートに行われる前に<select>
タグを処理するタグヘルパーに関係していると仮定します。誰もがif else
構造内の2つの別々の要素をレンダリングすることなく、この要素を条件付きで無効にする方法を提案できますか?
ありがとうございました。これはフレームワークで提供されている既存の '
はい、それは添加物です。 Orderヘルパーが呼び出される順序を変更するには、Orderプロパティをオーバーロードします(下位が先に実行されます)。ただし、衝突がないためここでは必要ありません。 –
ありがとうございました。私はActive、ReadOnly、またはDisabledの列挙型を渡すことを可能にする修正版を作成しました。 'Process'メソッドを作成したとき、Studioには' base(context、output) 'の呼び出しが含まれていました。それが厳密に必要かどうかは分かりますか? –