如何实现WebApi自定义模型绑定器

时间:2015-08-28 14:59:26

标签: asp.net-web-api2 asp.net-web-api custom-model-binder

我正在实施自定义模型绑定器。我研究了如何做到并发现在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以便我的自定义实现工作?

1 个答案:

答案 0 :(得分:0)

我不确定这个实现,因为我之前没有尝试过。我应用于自定义模型绑定器的机制是使用bindingContext.Model属性将Model设置为我的模型类的实例。

离)。 bindingContext.Model = new Foo();

要使自定义模型绑定器在配置中起作用,必须使用action参数旁边的ModelBinder属性,将模型绑定器属性应用于模型类,或创建参数绑定规则。将模型binder属性应用于action方法参数可以为使用模型绑定器增加一些灵活性,并且是一种简单的方法

  public IHttpActionResult FooAction([ModelBinder(BinderType=typeof(mymodelbinder))]Foo myFoo) { }