ASP.NET MVC ビューで辞書を正常にバインドしました
辞書を ASP.NET MVC ビューにバインドすると、フォーム送信後に初期値が欠落したり、null プロパティが欠落したりすることがよくあります。このガイドでは、ディクショナリを正しくバインドし、ビューとモデルのバインド プロセスを通じてデータが確実に保持されるようにする方法を明確にします。
この問題は、モデル内の事前定義された値で辞書が初期化されるときによく発生します。 標準の MVC モデル バインダーは、この初期化メソッドを直接サポートしていません。これを解決するには、ビュー内でインデクサー構文 property[key]
を利用する必要があります。
あなたの見解に合わせて修正されたアプローチは次のとおりです:
<code class="language-csharp">@foreach (KeyValuePair<string, string> kvp in Model.Params) { <tr> <td>@Html.Hidden("Params[" + kvp.Key + "]", kvp.Key)</td> <td>@Html.TextBox("Params[" + kvp.Value + "]")</td> </tr> }</code>
この更新されたコードは、@Html.Hidden
を使用してキーを正しくバインドし、@Html.TextBox
を使用して値を処理し、キーと値のペアごとに適切なインデクサー構文 Params[key]
を採用します。これにより、モデル バインダーは、フォーム送信時に送信されたデータを Params
ディクショナリに正確にマッピングします。 キーは送信中に保持するために非表示になっています。 値はユーザー入力用に公開されます。
以上がASP.NET MVC ビューで辞書を適切にバインドするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。