ホームページ > バックエンド開発 > C++ > ASP.NET MVCで辞書を適切にバインドするにはどうすればよいですか?

ASP.NET MVCで辞書を適切にバインドするにはどうすればよいですか?

Linda Hamilton
リリース: 2025-01-10 07:20:43
オリジナル
434 人が閲覧しました

How to Properly Bind Dictionaries in ASP.NET MVC?

ASP.NET MVC でのディクショナリ値のバインドは一般に単純ですが、バインドを成功させるには特定の構文規則に従う必要があります。

モデルバインディング

モデル クラスで、辞書属性を定義し、次の値で初期化する必要があります:

<code class="language-csharp">public class MyModel
{
    public Dictionary<string, string> Params { get; set; }

    public MyModel()
    {
        Params = new Dictionary<string, string>();
        Params.Add("Value1", "1");
        Params.Add("Value2", "2");
        Params.Add("Value3", "3");
    }
}</code>
ログイン後にコピー

タグを表示

ビューで、次の構文を使用して辞書のキーと値をバインドします:

<code class="language-html">@foreach (KeyValuePair<string, string> kvp in Model.Params)
{ 
    <tr><td>
            @Html.TextBox("Params[" + kvp.Key + "]")
        </td>
    </tr>
}</code>
ログイン後にコピー

この構文は、各入力フィールドの名前属性構造が「Params[key]」であることを保証し、モデル バインディングで使用されるインデクサー構文と一致します。

辞書のキーと値をバインドします

ASP.NET MVC 4 では、デフォルトのモデル バインダーは、一般的な辞書インデクサー構文 (property[key]) を使用して辞書をバインドします。したがって、次のタグは Dictionary<string, string> に正常にバインドされます:

<code class="language-html">@foreach (var kvp in Model.MyDictionary) {
    <input type="checkbox" name="@string.Format("MyDictionary[{0}]", kvp.Key)" checked="@kvp.Value" />
}</code>
ログイン後にコピー

これにより、チェックボックスを辞書要素にバインドできるようになります。 checked="@kvp.Value"kvp.Value がブール値であると想定していることに注意してください。 kvp.Value が文字列の場合は、checked="@(kvp.Value == "true")" を使用するなど、実際の状況に応じてコードのこの部分を調整する必要があります。

以上がASP.NET MVCで辞書を適切にバインドするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート