2017-07-31 48 views
0

我有2個應用程序,一個將數據發佈到另一個應用程序。當我運行第一個應用程序時,控制器中的post方法執行,但無法找到模型或ObjavaDto(objaveList),因此它爲空。當我將var json中的json複製粘貼到Postman中時,一切正常。我錯過了什麼?Asp.NetCore API控制器沒有從Json獲取數據

var json = new JavaScriptSerializer().Serialize(objaveList[2]); 

我用[2]只是爲了簡單起見,因爲有很多人

string url = "http://localhost:61837/api/Objave"; 

string result; 
using (var client = new WebClient()) 
     { 
     client.Headers.Add("Content-Type", "application/json"); 
     result = client.UploadString(url, "POST", json); 
     } 

第二個應用控制器

namespace StecajeviInfo.Controllers.Api 
{ 
    [Route("api/[controller]")] 
    public class ObjaveController : Controller 
    { 

     [HttpPost] 
     public void Post([FromBody]ObjavaDto objaveList) 
     { 

     } 

    } 
} 
public class ObjavaDto 
{ 
    public string OznakaSpisa { get; set; } 
    public string NazivOtpravka { get; set; } 
    public string NazivStecajnogDuznika { get; set; } 
    public string PrebivalisteStecajnogDuznika { get; set; } 
    public string SjedisteStecajnogDuznika { get; set; } 
    public string OIBStecajnogDuznika { get; set; } 
    public string OglasSeOdnosiNa { get; set; } 
    public DateTime DatumObjave { get; set; } 
    public string OibPrimatelja { get; set; } 
    public string Dokument { get; set; } 
}  

發送數據看起來像這樣

{ 
    "OznakaSpisa":"St-6721/2015", 
    "NazivOtpravka":"Rješenje - otvaranje stečajnog postupka St-6721/2015-7", 
    "NazivStecajnogDuznika":"RAIN AIR d.o.o.", 
    "PrebivalisteStecajnogDuznika":"Savska 144/A, 10000, Zagreb", 
    "SjedisteStecajnogDuznika":"", 
    "OIBStecajnogDuznika":‌​"37144498637", 
    "Oglas‌​SeOdnosiNa":"Missing Oib", 
    "DatumObjave":"\/Date(1501106400000)\/", 
    "OibPrimatelja"‌​:"37144498637", 
    "Doku‌​ment":"e-oglasna.pra‌​vosudje.hr/sites/def‌​ault/files/ts-zg-st/‌​…;" 
} 
+0

你是不是想發送整個列表或只是一個?還顯示通過電線發送的JSON數據字符串。 – Nkosi

+0

我無法設計它,所以我沒有發佈它 – Jones

+0

我的目標是發送一個完整的列表,但我將Dto從ObjaveListDto更改爲Objave Dto,因此我可以縮小問題的範圍 – Jones

回答

0

謝謝大家的回覆,你一直很有幫助,並給了我一個想法如何測試。我測試了評論屬性,我發現這是因爲Naziv otpravka(「Rješenje」和「stečajnog」)中的特殊字符,幸運地只出現在該屬性中。

我發現,這個問題解決了https://stackoverflow.com/a/12081747/6231007

client.Headers["Content-Type"] = "application/json; charset=utf-8"; 
client.UploadDataAsync(new Uri(url), "POST", 
Encoding.UTF8.GetBytes(json)); 
0

日期時間有問題抽動。讓它可以爲空(DateTime?)並用它來測試。您可能會填寫所有其他屬性,並且日期時間將保持爲空。如果這是問題,請確保您的客戶端發送您的模型聯編程序可以識別的日期時間格式。