2016-12-21 14 views
0

私は角の$ httpのポストメソッドからC#Web APIを呼び出すと以下のように立ち往生しています。

私のJSONオブジェクトは今すぐ.NETで書かれたAPIは以下の通りです

$http({ 
    method: "POST", 
    url: API_ROOT + "BusinessDimension/UpdateCostObjects", 
    data: requestParams, 
    headers: { 
     "Content-Type": "application/json" 
    } 
}) 

以下のようである角度で

var requestParams = { 
    "CostObjects": $scope.costObjForSaveArray, 
    "CostObjectHierarchies": $scope.costObjHierarchyForSaveArray, 
}; 

API呼び出し、以下の通りです。

[HttpPost, ActionName("UpdateCostObjects")] 
public HttpResponseMessage UpdateCostObjects([FromBody] JsonData data) 
{ 
    var costObjects = JsonConvert.DeserializeObject<List<CostObjectM>>(data.Data); 

    if (ModelState.IsValid) 
    { 
     var updatedCostObjects = Acornpadomainservice.UpdateCostObjects(costObjects).ToList(); 
     return Request.CreateResponse(updatedCostObjects); 
    } 
    else 
    { 
     return Request.CreateErrorResponse(HttpStatusCode.BadRequest, ModelState); 
    } 
} 

JSONクラスは、以下の通りである

public class JsonData 
{ 
    public string Data { get; set; } 
} 

誰もが私が間違ってやっている何私を修正してもらえますか?

+0

あなたの関数は呼び出されますが、データはnullですか? – gaurav5430

+0

はい@ gaurav5430:しかし、データはchrome xhrネットワークのRequest Payloadに表示されます –

答えて

0

編集し、次のコード

$http({ 
 
    method: "POST", 
 
    url: API_ROOT + "BusinessDimension/UpdateCostObjects", 
 
    data: {Data :angular.toJson(requestParams)}, 
 
    headers: { 
 
     "Content-Type": "application/json" 
 
    } 
 
})

angular.toJson(データ)JSONオブジェクトは、データ上の文字列型を期待しているので、あなたがオブジェクトstringfyますフィールドに送信されます

0

JsonDataで置き換えると、それは...

例:作業かいないかどうかを確認中オブジェクトまたは文字列にあなたのポストメソッドのパラメータの型を交換してください。

[HttpPost, ActionName("UpdateCostObjects")] 
    public HttpResponseMessage UpdateCostObjects([FromBody] object data) 
    { 
     var costObjects = JsonConvert.DeserializeObject<List<CostObjectM>>(data.Data); 

     if (ModelState.IsValid) 
     { 
      var updatedCostObjects = Acornpadomainservice.UpdateCostObjects(costObjects).ToList(); 
      return Request.CreateResponse(updatedCostObjects); 
     } 
     else 
     { 
      return Request.CreateErrorResponse(HttpStatusCode.BadRequest, ModelState); 
     } 
    } 
0
$http({ 
    method: "POST", 
    url: API_ROOT + "BusinessDimension/UpdateCostObjects", 
    data: JSON.stringify(requestParams), 
    contentType: 'application/json; charset=utf-8' 
}) 
+0

あなたが共有しているコードの周りにいくつかの文脈/解説を追加してください。これは、尋問者や他の読者があなたの投稿をより良く理解するのに役立ちます。 – RBT

+0

質問をした@RBTは、私たちの誰かに何かの答えや返信を確認しませんでした.. !!!! –

関連する問題