所以我想将一些带有Angular Resource的复杂类型发送到我的ServiceStack后端。在前端看起来像这样:
MyResource.get({
Data: { countries: ["DE","CH","AT"] }
SomeMoreParams: "hi"
});
这是我的DTO:
[Route("/my-resource","GET")]
public class MyResource
{
public OwnType Data { get; set; }
public string SomeMoreData { get; set; }
}
public class OwnType
{
public List<string> Countries { get; set; }
}
但它没有被ServiceStack正确反序列化。如果我在发布请求中发送数据,它可以正常工作。我已经发现ServiceStack在这种情况下使用JSV格式。是否有可能使这个工作或我必须使用post或编写我自己的Deserializer?
谢谢!
答案 0 :(得分:0)
通过QueryString发送复杂类型没有正式的结构,因此我们建议您保持Request DTO的扁平化,以便轻松访问它们。所以我会将您的国家/地区转移到您的请求DTO中的第一级财产:
[Route("/my-resource","GET")]
public class MyResource
{
public List<string> Countries { get; set; }
public string SomeMoreData { get; set; }
}
您现在应该可以访问:
MyResource.get({
countries: "DE,CH,AT"
SomeMoreParams: "hi"
});
如果您希望将复杂类型保留在Request DTO上,而不是最简单的send a complex type Request is to use POST方式。