我正在实施自定义模型绑定器。我研究了如何做到并发现在WebApi的情况下我需要实现IModelBinder
接口。
我的实现如下:
public class ModelBaseBinder : IModelBinder
{
public bool BindModel(HttpActionContext actionContext, ModelBindingContext bindingContext)
{
if ((bindingContext.Model is MyModel))
{
//my code here
controller.InitModel(model);
return true;
}
return false;
}
}
我只是不确定我的实施是否完整。我是否需要调用任何默认的WebApi BindModel
以便我的自定义实现工作?
答案 0 :(得分:0)
我不确定这个实现,因为我之前没有尝试过。我应用于自定义模型绑定器的机制是使用bindingContext.Model属性将Model设置为我的模型类的实例。
离)。 bindingContext.Model = new Foo();
要使自定义模型绑定器在配置中起作用,必须使用action参数旁边的ModelBinder属性,将模型绑定器属性应用于模型类,或创建参数绑定规则。将模型binder属性应用于action方法参数可以为使用模型绑定器增加一些灵活性,并且是一种简单的方法
public IHttpActionResult FooAction([ModelBinder(BinderType=typeof(mymodelbinder))]Foo myFoo) { }