ASP.NET MVC模型使用前缀绑定集合

spo*_*pot 9 asp.net-mvc

我想用前缀绑定一个集合,就像这样

public ActionResult Whatever([Bind(Prefix = "Prefix")] CustomModel[] models)
Run Code Online (Sandbox Code Playgroud)

我使用创建表单元素

<%= Html.TextBox("Prefix.models[" + i + "].Property") %>
Run Code Online (Sandbox Code Playgroud)

它生成了像这样的html输入

<input id="Prefix_models[0]_Property" name="Prefix.models[0].Property" />
Run Code Online (Sandbox Code Playgroud)

我的问题是默认模型绑定器不会与前缀绑定.我在动作方法中为模型arg得到null.

如果我从html中删除前缀并删除Bind属性,一切正常.我无法想象默认的模型绑定器不会处理集合上的前缀,所以我一定做错了.

请帮忙.干杯!

Lev*_*evi 11

[Bind]内部的前缀不会添加到参数名称前面,它会完全替换参数名称.因此,如果您的操作方法具有此签名:

public ActionResult MyAction([Bind(Prefix = "foo")] string[] bar) { ... }
Run Code Online (Sandbox Code Playgroud)

该粘结剂预期foo[0],foo[1]等等.