Bre*_*ker 10 .net asp.net asp.net-mvc
我有一个表单,其中包含一系列字段,如:
<input type="text" name="User[123]" value="Alice" />
<input type="text" name="User[456]" value="Bob" />
...
Run Code Online (Sandbox Code Playgroud)
用户数组(123和456)的索引是与该值关联的ID.我正在尝试在控制器中更新这些值.我的想法是,将ID映射到name的Dictionary可以工作,但创建的动作如下:
public void Save(Dictionary<string, string> user) {
// ...
}
Run Code Online (Sandbox Code Playgroud)
导致user参数为null.
那么,传递字典是否可能?或者,有另一种方法来实现这一目标吗?
wom*_*omp 12
列表是可能的,我相信它也可以用于字典.阅读Phil Haack的模型绑定到列表,了解列表绑定的工作原理.
你应该能够做到这一点:
<input type="hidden" name="User.Index" value="123" />
<input type="text" name="User[123]" value="Alice" />
<input type="hidden" name="User.Index" value="456" />
<input type="text" name="User[456]" value="Bob" />
Run Code Online (Sandbox Code Playgroud)
有关绑定到字典所需的语法,请参阅http://www.hanselman.com/blog/ASPNETWireFormatForModelBindingToArraysListsCollectionsDictionaries.aspx.请特别注意将MSFT + AAPL公司代码绑定在该帖子中间大约一半的示例.
对于ASP.NET MVC 2,请使用:
<input type="hidden" name="User[0].Key" value="123" />
<input type="text" name="User[0].Value" value="Alice" />
<input type="hidden" name="User[1].Key" value="456" />
<input type="text" name="User[1].Value" value="Bob" />
Run Code Online (Sandbox Code Playgroud)
你需要一个额外的隐藏字段User [i] .Key.我是从零开始的索引.它应该是不间断的.
当你模拟绑定到字典时,你实际上绑定到一个
ICollection<KeyValuePair<,>>.所以你需要User [x] .Key和User [x] .Value(重构KeyValuePair对象)
参考
| 归档时间: |
|
| 查看次数: |
8522 次 |
| 最近记录: |