Bir Ajax isteği için jquery bir "ayrıştırıcı" alıyorum, ben POST bir GET, birkaç farklı yollarla (sınıf oluşturma, vb) veri döndürerek değiştirmeye çalıştım ama sorunun ne olduğunu anlayamıyorum gibi görünüyor.
Projem MVC3 ve ben jQuery 1.5 kullanıyorum Bir açılan var ve onchange olayı seçilen ne dayalı bazı veri almak için bir çağrı ateş.
Açılır menü: (bu, Görünüm Çantası'ndaki listeden "Görünümler" i yükler ve etkinliğin tetiklenmesi iyi çalışır)
@{
var viewHtmls = new Dictionary<string, object>();
viewHtmls.Add("data-bind", "value: ViewID");
viewHtmls.Add("onchange", "javascript:PageModel.LoadViewContentNames()");
}
@Html.DropDownList("view", (List<SelectListItem>)ViewBag.Views, viewHtmls)
JavaScript:
this.LoadViewContentNames = function () {
$.ajax({
url: '/Admin/Ajax/GetViewContentNames',
type: 'POST',
dataType: 'json',
data: { viewID: $("#view").val() },
success: function (data) {
alert(data);
},
error: function (data) {
debugger;
alert("Error");
}
});
};
Yukarıdaki kod başarıyla MVC yöntemini çağırır ve döndürür:
[{"ViewContentID":1,"Name":"TopContent","Note":"Content on the top"},
{"ViewContentID":2,"Name":"BottomContent","Note":"Content on the bottom"}]
Ancak jquery, $ .ajax () yöntemi için "parsererror" yazan hata olayını başlatır.