我需要了解我在这里做错了什么。
我有一个.net 4.7.2项目。 我有一个从System.Web.Http.ApiController类继承的Controller。
在控制器中,我具有以下端点
public HttpResponseMessage EchoIdentifierArray([ModelBinder(typeof(CommaDelimitedArrayBinder))] IEnumerable<int> ids)
{
return Request.CreateResponse(HttpStatusCode.OK, ids);
}
我在这里的想法仅仅是对传入的id的测试。
自定义模型活页夹如下:
public class CommaDelimitedArrayBinder : IModelBinder
{
public object BindModel(ControllerContext controllerContext, ModelBindingContext bindingContext)
{
throw new System.NotImplementedException();
}
}
我正在使用邮递员来测试终点,并且我可以看到网址的格式如下:
/ api / v3 / Echos / EchoIdentifierArray?ids = 160742,160892
然后在端点的第一行上放置一个断点,但我从未遇到过ModelBinder期望的异常。
我在这里做什么错了?
答案 0 :(得分:0)
我根据正确的名称空间测试了您的代码。我遇到对象类型问题,原因是匹配的返回类型应该是布尔值。请使用以下代码段进行测试。
public class CommaDelimitedArrayBinder : System.Web.Http.ModelBinding.IModelBinder
{
public CommaDelimitedArrayBinder()
{
}
public bool BindModel(
System.Web.Http.Controllers.HttpActionContext actionContext,
System.Web.Http.ModelBinding.ModelBindingContext bindingContext)
{
return true;
}
}
我建议您关注this文章并进行测试并转换为您的案例。