我有一个自定义模型绑定器,它为进入操作方法的特定参数调用:
public override ActionResult MyAction(int someData, [ModelBinder(typeof(MyCustomModelBinder))]List<MyObject> myList ... )
这很好用——按预期调用活页夹。但是,我想为Request.Form 集合中的一些附加值调用默认模型绑定器。表单键的命名如下:
dataFromView[0].Key
dataFromView[0].Value
dataFromView[1].Key
dataFromView[1].Value
如果我将 IDictionary 添加为操作方法的参数,默认模型绑定器会很好地将这些值转换为 IDictionary。
但是,我想在模型绑定器级别(以及上面的原始 List 对象)操作这些值。
有没有办法让默认模型绑定器从BindModel()
我的自定义模型绑定器的方法中的表单值创建这个字典?
public override object BindModel(ControllerContext controllerContext, ModelBindingContext bindingContext)
{
//Get the default model binder to provide the IDictionary from the form values...
}
我尝试使用 bindingContext.ValueProvider.GetValue,但是当我尝试转换为 IDictionary 时,它似乎总是返回 null。