Ben ASP.NET MVC 4 RC Web API garip bir bağlayıcı sorun olarak düşündükleri alıyorum. İstemciden gelen posta isteklerini kabul etmeyi amaçlayan bir yöntem var. Sorun, post metodu çağrıldığında parametrelerin hiçbirinin bağlayıcı olmaması, fırlatma hattında ve ismimde kopma noktama ulaşmam, e-postanın ikisi de boş olmasıdır. İsteğin türünü JavaScript’te GET olarak değiştirirsem, aşağıdaki parametreye bağlı parametreler çağrılır.ASP.NET MVC 4 RC Web API Parametre Bağlama Sayı
Neden Mesaj yöntemi için bağlamak için başarısız parametrelerdir ve bunu nasıl düzeltebilirim?
send: function(evt) {
evt.preventDefault();
$.ajax({
url: '/api/person',
data: this.model.toJSON(),
type: "POST",
dataType: "json",
success: function(data) {
console.log("Success");
},
error: function(data) {
console.log("Error");
}
});
}
aşağıdaki kontrolör eylemler geçerli:
public void Get(string name, string email) {
throw new NotImplementedException();
}
public void Post(string name, string email) {
throw new NotImplementedException();
}
Notlar: ASP.NET MVC 4 RC Web API için varsayılan (Yani deserializer tüm kullanıyorum
- olmalıdır Json.NET)
- JS hata ayıklayıcısındaki Chrome ağ sekmesi, form verisindeki doğru gönderimdeki parametreleri gösterir.
Al parametrem geçersizdir, aslında mevcut değil. Açık olmayabilirdim ama sadece işlevin GET üzerinde çalıştığını ve POST'ta bulunmadığını göstermek için var. – Cody
Tamam - peki, o zaman sorun değil :). Kısacası, eğer talebin gövdesinden birden fazla parametre bağlarsanız, temel olarak yapılacak en kolay şey, gösterdiğim gibi basit bir model tipi yazmaktır. –
Mike Stall makale bağlantısı için teşekkürler, neler olduğu hakkında çok bilgilendirici oldu. Web API'nın MVC ile tam olarak aynı ciltleme stratejisini kullandığını varsaymıştım. Parazitleri almak için özel bir sınıf oluşturmak bir cazibe gibi çalıştı, ben bu çözümün hayranı değilim ama nedenini anlayamıyorum, bu yüzden muhtemelen inatçı oluyorum. :) Her durumda kullanacağım çözüm. Teşekkürler!:) – Cody