2

所以我想發送一些Angular Resource的複雜類型到我的ServiceStack後端。在前端,它看起來是這樣的:用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格式。有沒有可能讓這個工作,或我必須使用後或編寫我自己的Deserializer?

謝謝!

回答

0

沒有通過QueryString發送複雜類型的正式結構,因此我們建議保留您的請求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" 
}); 

如果你想保持複雜類型上你請求DTO比send a complex type Request is to use POST最簡單的方法。