【问题标题】:How to implement WebApi custom model binder如何实现 WebApi 自定义模型绑定器
【发布时间】:2015-11-05 04:23:28
【问题描述】:

我正在实施自定义模型绑定器。我研究了如何做到这一点,发现在 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 才能使我的自定义实现工作?

【问题讨论】:

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


    【解决方案1】:

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

    例如)。 bindingContext.Model = new Foo();

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

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

    【讨论】:

      猜你喜欢
      • 2023-03-30
      • 1970-01-01
      • 1970-01-01
      • 2020-09-04
      • 1970-01-01
      • 1970-01-01
      • 2013-04-28
      • 2016-09-13
      • 2012-11-28
      相关资源
      最近更新 更多