2016-03-22 20 views
0

我遇到一個相當不尋常的問題。角度後的方法 - 零件模型

我們目前正在開發一個Ionic應用程序 - 使用Web API作爲後端數據庫。在該應用程序中,我們調用$ http.post方法後的數據返回給API,它看起來像如下:

$http.post(
    ApiEndpoint.url + '/PostUpdate/', 
    JSON.stringify(postData), 
    { 
     headers: { 
      'Content-Type': 'application/json' 
     } 
    } 
).success(function(data) { 
    alert("WORKS!"); 
}); 

我可以看到所有的數據是POST-ED成功通過谷歌Chrome開發者工具:

enter image description here

然而,當新公佈的網絡API - 不是所有的數據的特點是在模型中。使用上面的數據爲例,你可以看到,元素「DetailsOfConversation」中有數據 - 但它設置爲null模型:

enter image description here

但是其他屬性(如OutcomeId,TimeAttend,參加給定地址,jobId)具有正確的值集。這一個讓我難住!我可以從哪裏開始尋找問題的任何想法?

編輯:我已經實現了以下自定義屬性: http://weblog.west-wind.com/posts/2013/Dec/13/Accepting-Raw-Request-Body-Content-with-ASPNET-Web-API

,讓我查看POST數據的原始體,似乎缺少的領域是否有:

enter image description here

所以我想如果這不能解決,我會簡單地從中提取數據(不理想,我知道)

+0

什麼是DetailsOfConversation的數據類型?如果它不是一個字符串,那麼你傳遞一個字符串,以便該屬性不會被序列化。 – Bettimms

+0

嘿,它絕對是一個字符串 –

+1

嘗試沒有JSON.stringify並直接傳遞postData只是爲了看看是否有用。您不必將數據串聯起來。 – Lex

回答

0

請檢查您的序列化程序,並確保您已收到ed內容類型'application\json', probably you dont have registered json serialiser or content type accepted as'x-www-form-urlencoded'。我以前有類似的問題,它的源代碼是串行器。

+0

我已經在我的Global.asax.cs中使用以下設置JSON序列化程序: HttpConfiguration config = GlobalConfiguration.Configuration; config.Formatters.JsonFormatter.SerializerSettings.Formatting = Newtonsoft.Json.Formatting。齒痕; 採取從: http://stackoverflow.com/questions/13274625/how-to-set-custom-jsonserializersettings-for-json-net-in-mvc-4-web-api ,我也設置: 'Content-Type':'application/json' in my $ http.post –

0

我有一個最後期限,以滿足 - 因此我不得不把一個變通方法:以上

dynamic json = Newtonsoft.Json.JsonConvert.DeserializeObject(input); 
string conversation = json.DetailsOfConversation; 

給我我需要的,不理想的數據,但我想一個解決辦法。