簡體   English   中英

將用戶定義的類的實例作為數據傳遞到ServiceStack PUT

[英]Passing an instance of user-defined class as data to a ServiceStack PUT

一般而言,我對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; }
}

我可以在客戶端用Javascript構建對象,以准備進行PUT,如下所示:

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

但是,無論何時請求到達服務器, SomeProductProperties都將始終為null 實際上,我根本無法將用戶定義的類型傳遞給服務器。 似乎只有基本的內置.NET類型會遍歷整個網絡(整數,字符串等)。

在請求對象中具有用戶定義類的屬性是否有一些技巧?

非常感謝所有幫助! 謝謝!

與同事討論后最終解決了這個問題。 為了所有人的利益,這是我所做的:

通過網絡發送復雜類型時,您需要使用JSON.stringify()包裝包含復雜類型的js對象,然后傳遞結果字符串:

var updatedUser = self.buildUserObjectFromGui();
$.ajax({
    type: 'PUT',
    contentType: "application/json",
    data: JSON.stringify(updatedUser),
    url: 'internal/user/' + this.options.userId
});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM