2016-04-07 18 views
0

AnDataJS ön uç kullanan bir uygulama üzerinde çalışıyorum oData tabanlı bir ASP.NET arka uç ile. Çalışmak için posta istekleri almakta zorluk çekiyorum. Benim denetleyicileri sonrası yöntemleri tüm temelde şuna benzer:ASP.NET ODataController Alınıyor Özellik değerleri

Function Post(ByVal eDI_CUSTOMER As EDI_CUSTOMER) As IHttpActionResult 
     If Not ModelState.IsValid Then 
      Return BadRequest(ModelState) 
     End If 

     db.EDI_CUSTOMER.Add(eDI_CUSTOMER) 

     Try 
      db.SaveChanges() 
     Catch ex As DbUpdateException 
      If (EDI_CUSTOMERExists(eDI_CUSTOMER.ID)) Then 
       Return Conflict() 
      Else 
       Throw 
      End If 
     End Try 

     Return Created(eDI_CUSTOMER) 
    End Function 

Ben beklendiği gibi veri geçirilir Krom ayıklayıcısında görebileceğiniz bir post isteği çalıştığınızda. Bir içerik türü "application/json" kullanırsam, .NET denetleyicisi tarafından hiçbir şey alınmaz. Bir içerik türünü kullanırsanız "application/x-www-form-urlencoded" beklenen özelliklere sahip bir nesne alınır, ancak tüm özellik değerleri boştur.

Neyi kaçırdığımı bilen var mı? Ben aşağıda gibi benim koşmak bloğuna serileştirme gibi JQuery kullanmak için kod ekleme

+0

C# programcısıyım, bu sadece karanlıkta bir çekim: 'ByVal'i ByRef' olarak değiştirirseniz ne olur? – lencharest

+0

Bu bir çok şey olabilir, bize bir javascript örneği ve EDI_CUSTOMER Arayüzü sağlayabilir misiniz? CORS kullanıyor musunuz? –

+0

Teşekkürler Rogerio. Bütün bunların gerekli olduğunu düşünmüyorum. Yazının gönderildiğini doğrulayabilirim ve nesnelerin .NET tarafından alındığını biliyorum. Bu, genel olarak ASP.NET & Angular ile oldukça yaygın bir sorundur. Aşağıda verdiğim cevap bu sorunu çözmektedir; tüm yama taleplerimi kırar. Sadece yayınlar için sadece $ httpParamSerializerJQLike 'yi nasıl kullanacağımı bulmalıyım ve gitmek için iyi olmalıyım. –

cevap

0

OData 4. kullanıyorum

:

.run(function($http, $httpParamSerializerJQLike) { 
     $http.defaults.transformRequest.unshift($httpParamSerializerJQLike); 
}) 

benim için bu sorun giderilir.