2009-07-20 78 views
2

我想拥有MVC控制器的以下签名。ASP.NET MVC模型绑定器。使用一组对象调用控制器参数

public ActionResult Create(Persons[] p) 
{ 

} 

是否有可能有这样的事情?

编辑: 假设我想通过提交由特殊符号分隔的名称列表来获取人物对象数组。 比如我提交表单

<form> 
    <input name="person_name">Max|Alex|Andrew</input> 
</form> 

我想这应该通过实施IModelBinder界面来完成,但我没有找到任何例子,如何做到这一点。

回答

3

哦,我发现如何做到这一点。

在在Application_Start()函数Global.asax文件应写入:

ModelBinders.Binders(typeof(Person[])) = new PersonBinder(); 

以这种方式定制的粘合剂被登记。

0

我认为这种事情会工作

<input type="text" name="Person[1].name" /> 
0

,你可能需要用a custom controlleractioninvoker周围玩耍。

或只是一个普通的modelbinder

安德鲁

+0

没有。它仅适用于单值参数。 – 2009-07-20 11:03:24

+0

它将适用于任何类型,“人员[]”是一种类型完全相同的方式“人员”是 – 2009-07-20 11:13:16

2

是。有关如何获取由DefaultModelBinder绑定的集合,请参阅this question

相关问题