Bir GET isteğinde bir MVC eylem yöntemine uri iç içe yerleştirilmiş dizi ile karmaşık bir nesne göndermek istiyorum.[FromUri] özniteliğini kullanma - karmaşık nesneyi iç içe geçmiş dizeyle bağlama
Aşağıdaki kodu düşünün:
public ActionResult AutoCompleteHandler([FromUri]PartsQuery partsQuery){ ... }
public class PartsQuery
{
public Part[] Parts {get; set; }
public string LastKey { get; set; }
public string Term { get; set; }
}
$.ajax({
url: "Controller/AutoCompleteHandler",
data: $.param({
Parts: [{ hasLabel: "label", hasType: "type", hasIndex : 1 }],
LastKey : "Last Key",
Term : "Term"
}),
dataType: "json",
success: function(jsonData) { ... }
});
Bu sadece iyi çalışır ve doğru olarak MVC Web Api varsayılan modeli cilt kullanarak bağlanır.
Ancak aşağı düz MVC değil WebAPI ve varsayılan modeli bağlayıcı sonları için bu geçiş ve iç içe dizide nesnelerde özelliklerini bağlanılamıyor:
partsQuery != null //Good
--LastKey == "Last Key" //Good
--Term == "Term" //Good
--Parts[] != null //Good
----hasLabel == null //Failed to bind
----hasType == null //Failed to bind
----hasIndex == 0 //Failed to bind
Ben
istiyorum
İzleme Listesi Bu neden düz MVC'de bozulduğunu ve FromUriAttribute
nesnesinin bu nesneyi doğru olarak nasıl oluşturduğunu bilmek için MVC
'Parça [] Parçalarını' ICollection Parts' olarak değiştirirseniz ne olur? Ve 'Part' için sınıf tanımını gösterebilir misin? –
Şimdi bunu deniyorum. Kısmen halka açık basit POCO'dur {get; set; } sahne – parliament
'Part' parametresiz bir kurucu var mı? –