我有一个Request 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的一部分做模型绑定可能消耗了当我到达它时流?)