C#Web.API无法添加自定义模型绑定器

时间:2016-04-06 11:58:27

标签: c# asp.net-web-api model-binding custom-model-binder

我有一个具有一个Put方法的API控制器

public class ScheduleExecutionsController : ApiController
{

    public ScheduleExecutionsResponse Put([ModelBinder(typeof(TestBinder))]ScheduleExecutionsRequest requestInfo)
    {
        ....
    }
}

我在项目中添加了一个binder类

public class TestBinder : IModelBinder
{
    public object BindModel(ControllerContext controllerContext, ModelBindingContext bindingContext)
    {
        return new ScheduleExecutionsRequest();
    }
}

我设置了2个断点。第一个是控制器中Put方法的第一行,另一个是我的TestBinder BindModel对象的第一行。 在Fiddler之后我发送了PUT请求。

调试器始终在我的操作中停止,但从不在绑定器的BindModel methof中停止。似乎使用默认绑定器。我想念添加自定义的内容是什么?

1 个答案:

答案 0 :(得分:3)

您使用ModelBinderAttribute的{​​{3}}或WebAPI版本吗?

MVC和WebAPI的大部分基础结构 - 过滤器,绑定等 - 以两种形式存在(由于两个库的历史)。您的WebAPI控制器和操作必须使用这些(命名空间System.Web.Http或其子命名空间)的WebAPI版本。)