我设置了一个请求 DTO,用于针对导致更新的服务执行 PUT。
我需要将路由参数和 json 有效负载作为 PUT 发送(此有效负载是下面的 ApprovalRoleData 对象,表示我希望在服务器上反映的对象的新状态):
[Route("/qms/{QAID}/reviewers/{RoleType}", "PUT")]
public class UpdateReviewer
{
public string QAID { get; set; }
public string RoleType { get; set; }
public ApprovalRoleData UpdatedRoleData { get; set; }
}
在我的服务中,我有一个接受此 DTO 的 Put() 调用:问题是 ApprovalRoleData 对象没有被反序列化(但 QAID 和 RoleType 是):
public object Put(UpdateReviewer request)
{
string QAID = request.QAID; //can see value
string RT = request.RoleType; //can see value
ApprovalRoleData ard = request.UpdatedRoleData; //null
}
有没有像在 WebAPI 中那样指定我希望模型绑定同时使用路由参数和正文的方法?
边注:
此外,获取底层流以便我可以解析自己base.RequestContext.Get<IHttpRequest>().InputStream
并没有工作,因为没有剩余的流可供读取(我假设进行模型绑定的 ServiceStack 部分可能在我到达它时消耗了流?)