首頁 >後端開發 >C++ >如何在 ASP.NET MVC 中正確綁定字典?

如何在 ASP.NET MVC 中正確綁定字典?

Linda Hamilton
Linda Hamilton原創
2025-01-10 07:20:43434瀏覽

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>

此語法確保每個輸入欄位的name屬性結構為“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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn