【发布时间】:2015-05-03 06:50:35
【问题描述】:
我在 web api 中有一个 PUT 方法,它接受 JSON 数据和路由数据,如下所示。
[Route("api/v1/Orders/{orderId}/active")]
public HttpResponseMessage Put(Guid? orderId,List<ActiveRequest> activeRequests)
{
}
public class ActiveRequest
{
public int Id { get; set; }
public bool IsActive { get; set; }
}
现在可以将方法签名简化为:
[Route("api/v1/Orders/{orderId}/active")]
public HttpResponseMessage Put(ActiveRequestModel model)
{
}
public class ActiveRequestModel
{
public Guid OrderId { get; set; }
public List<ActiveRequest> ActiveRequests {get; set;}
}
我尝试通过实现 System.Web.Http.ModelBinding.IModelBinder 接口来编写自定义 ModelBinder,但找不到读取请求对象内部的 JSON 数据的方法。 我怀疑有没有一种方法可以将我的模型与来自三个不同地方的数据绑定,即来自 路由数据、json 和表单。
【问题讨论】:
标签: asp.net asp.net-mvc asp.net-web-api asp.net-web-api2 model-binding