小编典典

ASP.NET MVC绑定到字典

c#

我正在尝试在MVC中绑定字典值。

在动作中,我有:

model.Params = new Dictionary<string, string>();

model.Params.Add("Value1", "1");
model.Params.Add("Value2", "2");
model.Params.Add("Value3", "3");

在视图中,我有:

@foreach (KeyValuePair<string, string> kvp in Model.Params)
{ 
<tr>
  <td>
    <input type="hidden" name="Params.Key" value="@kvp.Key" />
    @Html.TextBox("Params[" + kvp.Key + "]")
  </td>
</tr>
}

但是视图不显示初始值,并且在提交表单时Params属性为null?


阅读 286

收藏
2020-05-19

共1个答案

小编典典

您应该看看scott
hanselman的这篇文章:http
:
//www.hanselman.com/blog/ASPNETWireFormatForModelBindingToArraysListsCollectionsDictionaries.aspx

默认的活页夹只理解以下格式的字典:

params[0].key = kvp.key
params[0].value = kvp.value

参数的索引必须是连续的,从0开始且没有任何间隔。当前的助手不支持此功能,因此您应该自己创建表单输入字段。

您当然可以实现自己的活页夹,如下所示:http :
//siphon9.net/loune/2009/12/a-intuitive-dictionary-model-binder-for-asp-net-
mvc/

2020-05-19