2016-11-16 12 views
0

クラスのリストオブジェクトを安らかなWeb APIに渡す必要があります。しかし、Web apiでnullという値を受け取りました。 以下はWeb APIの私のコードです。リストオブジェクトのクラスを安らかなWeb APIに渡す方法

Public class RequestDto 
    { 
     private string _clientId; 
     public string ClientId 
     { 
      get { return _clientId; } 
      set { _clientId= value; } 
     } 
     private List<DeliveryDocument> _deliveryDocumentInfo; 
     public List<DeliveryDocument> DeliveryDocumentInfo 
     { 
      get { return _deliveryDocumentInfo; } 
      set { _deliveryDocumentInfo = value; } 
     } 
    }   
    public class DeliveryDocument 
    { 
     public string DocumentName { get; set; } 
     public string DocumentURL { get; set; } 
    } 

public HttpResponseMessage PostSaveManifest([FromBody] RequestDto manifestRequest) 
     { 
//here i am receiving null value in list parameter 
} 

以下は、web apiを呼び出すためのコードです。

var values = new JObject(); 
values.Add("ClientId", "23824"); 

var DeliveryDocumentInfo = new List<DeliveryDocument>(); 
DeliveryDocumentInfo.Add(new DeliveryDocument { DocumentName = "Document Name", DocumentURL = "D:/Documnet/test.png" }); 
var serOut = JsonConvert.SerializeObject(DeliveryDocumentInfo); 
values.Add("DeliveryDocumentInfo", serOut); 

HttpContent content = new StringContent(values.ToString(), Encoding.UTF8, "application/json"); 
       var responsesss = client.PostAsync(Constants.URLValue + "/api/Manifest", content).Result; 
+0

あなたはあなたのようにjobjectではなくRequestDtoを作成しようとしましたか? –

+0

いいえ、私はやっていません..しかし、私は試してみます.. –

+0

@OrenHaliva RequestDtoオブジェクトを扱っています。ありがとう –

答えて

1

Web APIでRequestDtoのオブジェクトを作成します。としてとしてOrenHalivaコメント。

var manifest = new RequestDto(); 
manifest.ClientId = "23824"; 

var DeliveryDocumentInfo = new List<DeliveryDocument>(); 

DeliveryDocumentInfo.Add(new DeliveryDocument { DocumentName = "Document Name", DocumentURL = "D:/Documnet/test.png" }); 

manifest.DeliveryDocumentInfo = DeliveryDocumentInfo; 

var serOut = JsonConvert.SerializeObject(manifest); 
HttpContent content = new StringContent(serOut, Encoding.UTF8, "application/json"); 

var responsesss = client.PostAsync(Constants.URLValue + "/api/Manifest", content).Result; 
0

送信しているものをRequestDtoタイプにシリアル化することはできません。 "値"はあなたのDtoオブジェクトにあるリストですが、あなたのAPIはその中のリストだけでなく、dtoオブジェクトを期待しています。

+0

そうではありません...私は単一のRequestDtoオブジェクトを渡すだけですが、RequestDtoオブジェクトの下で私はドキュメントのリストを渡します。 –

関連する問題