ASP.NET MVC で辞書を正常にバインドしました
ASP.NET MVC ビュー モデルで辞書を操作すると、問題が発生する場合があります。 ビュー内の初期値が欠落している、またはフォーム送信後に null の Params
プロパティが表示されるなどの問題はよくあります。 これらの問題を解決する鍵は、辞書バインディング構文を理解し、正しく適用することにあります。
ASP.NET MVC 4 以降のバージョンでは、モデル バインダーは辞書バインディングに特定の形式 property[key]
を想定しています。 これは、ビューの入力要素がこの構文に従う必要があることを意味します。
ビュー内で辞書値をレンダリングしてバインドするための修正されたアプローチは次のとおりです。
<code class="language-csharp">@foreach (KeyValuePair<string, string> kvp in Model.Params) { <tr> <td> @Html.TextBox("Params[" + kvp.Key + "]") </td> </tr> }</code>
重要な変更に注目してください: Params[Key]
は動的構造 Params[" kvp.Key "]
に置き換えられます。これにより、各入力要素に辞書の適切なキーを使用して正しく名前が付けられるようになります。 「Params[Value1]」という名前の入力要素が、モデルの Params
辞書内の「Value1」キーに正しくマップされるようになりました。 この動的キーにより、ポストバック時に適切なデータ バインディングが保証されます。
以上がASP.NET MVCでディクショナリ値を適切にバインドするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。