我想使用前缀绑定集合,如此
public ActionResult Whatever([Bind(Prefix = "Prefix")] CustomModel[] models)
我使用
创建了表单元素<%= Html.TextBox("Prefix.models[" + i + "].Property") %>
生成像这样的HTML输入
<input id="Prefix_models[0]_Property" name="Prefix.models[0].Property" />
我的问题是默认模型绑定器不会与前缀绑定。我在动作方法中为模型arg得到null。
如果我从html中删除前缀并删除Bind属性,一切正常。我无法想象默认模型绑定器不会处理集合上的前缀,所以我一定做错了。
请帮忙。干杯!
答案 0 :(得分:11)
前缀不会添加到参数名称前面,它会完全替换参数名称。因此,如果您的操作方法具有此签名:
public ActionResult MyAction([Bind(Prefix = "foo")] string[] bar) { ... }
活页夹需要foo[0]
,foo[1]
等
答案 1 :(得分:1)
UpdateModel()和TryUpdateModel()接受前缀参数。你试过了吗?