asp.net mvc で無効なドロップダウンの値を取得する 質問する

asp.net mvc で無効なドロップダウンの値を取得する 質問する

ASP.NET MVC アプリケーションがあります。ページ (HTML SELECT) に複数のドロップダウン リストがあり、ユーザーが 1 つずつ選択していくので、それらを無効にする必要があります。ユーザーがそれをコントローラーにポストバックすると、関数 (アクション メソッド) パラメーターとして null が返されます。調べたところ、HTML はフォーム データ内の無効なフィールドの値を送信しないことがわかりました。無効な属性を readonly に置き換えても、ドロップダウンが機能するようにレンダリングされるため、機能しません。

ユーザーの進行に合わせて、JavaScript を使用してドロップダウンを動的に生成しています。そのため、ドロップダウンは 1 つではなく、ユーザーが望むだけあります。

値を取得するにはどうすればよいか教えてください。

ベストアンサー1

1 つの可能性としては、ドロップダウン リストを作成しdisabled="disabled"、同じ名前と値を持つ隠しフィールドを含めて、この値をサーバーに送信できるようにすることです。

@Html.DropDownListFor(x => x.FooId, Model.Foos, new { disabled = "disabled" })
@Html.HiddenFor(x => x.FooId)

JavaScript を使用してドロップダウンを動的に無効にする必要がある場合は、無効にした直後に、ドロップダウンで現在選択されている値を非表示フィールドに割り当てるだけです。

おすすめ記事