我有一个控制器动作,如下所示:
public ActionResult DoSomethingCool(int[] someIdNumbers)
{
...
}
我希望能够使用自定义模型绑定器从客户端上的复选框列表中创建该ID数组。有没有办法绑定到那个参数?另外,有没有办法让模型绑定器发现正在使用的参数的名称?例如,在我的模型绑定器中,我很想知道参数的名称是“someIdNumbers”。
答案 0 :(得分:11)
ModelBinder
属性可以应用于操作方法的各个参数:
public ActionResult Contact([ModelBinder(typeof(ContactBinder))]Contact contact)
此处,contact
参数使用ContactBinder
绑定。
答案 1 :(得分:6)
要发现参数的名称,可以使用ModelBindingContext.ModelName属性
public class MyModelBinder : IModelBinder
{
public object BindModel(ControllerContext controllerContext, ModelBindingContext bindingContext)
{
var thisIsTheArgumentName = bindingContext.ModelName;
}
}