2

私は ServiceStack と RESTful サービス全般に比較的慣れていないため、次の障害に直面しています。

次のような ServiceStack リクエスト オブジェクトがあります (C# の場合)。

[Authenticate]
[Route("/product", "POST")]
[Route("/product/{productId}", "GET,PUT,DELETE")]
public class SomeProductRequest: IReturn<Dto.Product>
{
    public int ProductId{ get; set; } 
    public ProductStuff SomeProductProperties { get; set; }
}

次のように、PUT の準備をするクライアント側で Javascript でオブジェクトを構築できます。

var product = {
  productId: 100,
  someProductProperties: { id:5, name:"My Name" }
};

ただし、リクエストがサーバーに到達するたびに、SomeProductPropertiesは常にnull. 実際、ユーザー定義型をサーバーに渡すことはまったくできません。基本的な組み込みの .NET 型 (int、string など) のみが送信されるようです。

リクエストオブジェクトにユーザー定義クラスのプロパティを持たせるコツはありますか?

すべてのヘルプは大歓迎です! ありがとう!

4

1 に答える 1

1

同僚と話し合った後、これを理解することになりました。他のすべての人のために、私がやったことは次のとおりです。

複合型をネットワーク経由で送信する場合は、複合型を含む js オブジェクトをラップして、JSON.stringify()代わりに結果の文字列を渡す必要があります。

var updatedUser = self.buildUserObjectFromGui();
$.ajax({
    type: 'PUT',
    contentType: "application/json",
    data: JSON.stringify(updatedUser),
    url: 'internal/user/' + this.options.userId
});
于 2013-05-29T18:17:29.313 に答える