我定义了三个路线。前两个工作正常,但最后一个在主题中返回错误。
Routes.Add<FeeInstructionsList>("/policies/{clientPolicyId}/feeinstructions", "GET");
Routes.Add<FeeInstructionsEdit>("/policies/{clientPolicyId}/feeinstructions/{feetype}", "GET");
Routes.Add<List<FeeInstructionEditInfo>>("/policies{clientPolicyId}/feeinstructions", "POST");
当我有第三条路线只是“/feeinstructions”时,它工作正常,但是当我添加上面的路线时它不起作用。
FeeInstructionEditInfo 没有名为“clientPolicyId”的成员。这可能是一个原因。如果是这样,我如何将它传递给服务而不需要修改我的 dto。它可以是这样的服务操作的附加参数吗?我不认为这是可能的,因为 ss 是每个请求一个 dto,但也许有办法?
public List<FeeInstructionEditInfo> Post(int clientPolicyId, List<FeeInstructionEditInfo> request)
目前这个方法被声明为
public List<FeeInstructionEditInfo> Post(List<FeeInstructionEditInfo> request)
这是正在发送的请求
> POST http://localhost:12543/api/policies/680455600/feeinstructions/
> HTTP/1.1 Content-Type: application/json Accept-Language: en-US
> Referer: http://localhost:12543/ClientBin/SR.SRUnite.ShellUI.xap
> Content-Length: 1408 Accept-Encoding: identity Accept:
> application/json User-Agent: Mozilla/5.0 (compatible; MSIE 9.0;
> Windows NT 6.1; WOW64; Trident/5.0; BOIE9;ENUS) Host: localhost:12543
> Connection: Keep-Alive Pragma: no-cache
这些是我原来的 dto,这些没有改变
[Route("/policies/{clientPolicyId}/feeinstructions/{feetype}","GET")]
public class FeeInstructionsEdit
{
public int ClientPolicyId { get; set; }
public string FeeType { get; set; }
}
public class FeeInstructionsEditResponse
{
public List<KeyValuePair> Instructions { get; set; }
public List<KeyValuePair> Contacts { get; set; }
public List<FeeInstructionEditInfo> FeeInstructions { get; set; }
}
public partial class FeeInstructionEditInfo
{
public int FeeInstructionId { get; set; }
public string FeeTypeCode { get; set; }
public string FeeTypeDescription { get; set; }
public string FeeTypeGroupCode { get; set; }
public string ProductName { get; set; }
public string InsuredType { get; set; }
public string Demographic { get; set; }
public string Instruction { get; set; }
public string Contact { get; set; }
public decimal? FeeAmount { get; set; }
}
我会将 FeeInstructionEditInfo 列表发布到 /clientPolicies/342434/feeinstructions 并且它不起作用,但发布到 /feeinstructions 会。
我现在使用这对 dto 发布。
[Route("feeinstructions","POST")]
public class FeeInstructionsSave
{
public int ClientPolicyId { get; set; }
public List<FeeInstructionEditInfo> FeeInstructions { get; set; }
}
public class FeeInstructionsSaveResponse : IHasResponseStatus
{
public ResponseStatus ResponseStatus { get; set; }
}