2016-04-14 13 views
2

Ben çok basit bir mesaj yöntemi vardır:.NET çekirdeği POST'de WebAPI tuhaf gövdesi. Doğru şekilde serileştirilmiyor mu?

[HttpPost] 
     public IActionResult Post(AgreementType model) 
     { 
      var ag = _facade.AddOrUpdateAgreement(model); 
      return Json(ag); 
     } 

ve Tamam üzerinden gelen olup olmadığını görmek için buna karşı bazı test aramaları göndermeye çalışıyor. O değil. Tarayıcıdaki ağ sekmesini kontrol ettim ve kemancı ve istek kesinlikle bana iyi görünüyor. (İçerik-Tür uygulama/json ve vücut sadece iyi).

Sunucu tarafı postalama yönteminin içine bir kesme noktası yerleştirdim ve yönteme ulaşıyor ve modelin yapısı tamam, yalnızca tüm dizeler boş ve diziler boş. Ben sadece ... geliyor birinin yerine boş (yeni) AgreementType modelini alıyorum gibi

Bu bir seri sorunu gibi hissediyor görünüyor

Düzenleme:

: Burada json ve C# Modeli olduğunu

json:

{ 
    "QuestionCategories": [1], 
    "Id": 1, 
    "Name": "Name", 
    "ShortName": "Short Name" 
} 

Modeli:

namespace DTModels.Models 
{ 
    public class AgreementType 
    { 
     public virtual ICollection<QuestionCategory> QuestionCategories { get; set; } 

     public AgreementType() 
     { 
      QuestionCategories = new HashSet<QuestionCategory>(); 
     } 

     public int Id { get; set; } 
     public string Name { get; set; } 
     public string ShortName { get; set; } 
    } 
} 
+0

'[FromBody]' özniteliğini parametrenize ekleyin ve verilerin parametreniz tarafından kabul edilip edilmediğine bakın. –

+1

Bize modeli ve JSON'u göster. Olduğu gibi, sorunun nerede olduğunu tahmin etmek için yeterli bilgiye sahip değiliz. – Amy

+0

@KennethK. Bunu denedim ve model sadece boştu. – pQuestions123

cevap

2

C# nesnesinde, QuestionCategories bir Soru Kategorisi koleksiyonudur, ancak jsonunuzda bir int koleksiyonu gönderirsiniz. Bu haritalamayacak. YourJson prop1 ve prop2 QuestionCategory aittir ve benim örnek koleksiyonunda 2 nesneleri geçen durumlarda şey

{ 
    "QuestionCategories": [ 
          {"prop1" : "value", 
          "prop2": "value"}, 
          {"prop1": "value", 
          "prop2": "value"} 
         ], 
    "Id": 1, 
    "Name": "Name", 
    "ShortName": "Short Name" 
} 

gibi olmak gerekir. Ayrıca, başlık/başlık olarak içerik türünü de uygulama/json olarak ayarlamanız gerekir.

+0

Teşekkürler, cevabınızın ve cevabımın bir kombinasyonu gibi görünüyor. – pQuestions123

0

bunu düşündüm dışarı. İçerik uzunluğunuzun ayarlandığından emin olun!