在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中文网其他相关文章!