首页 >后端开发 >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