Ajaxリクエストのjqueryから「parsererror」を取得しているので、POSTをGETに変更して、いくつかの異なる方法(クラスの作成など)でデータを返しましたが、問題が何であるかわからないようです。
私のプロジェクトはMVC3にあり、jQuery 1.5を使用しています。ドロップダウンがあり、onchangeイベントで呼び出しを開始して、何が選択されたかに基づいてデータを取得します。
ドロップダウン:(これにより、Viewbagのリストから「ビュー」が読み込まれ、イベントの起動が正常に機能します)
@{
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");
}
});
};
上記のコードはMVCメソッドを正常に呼び出し、以下を返します。
[{"ViewContentID":1,"Name":"TopContent","Note":"Content on the top"},
{"ViewContentID":2,"Name":"BottomContent","Note":"Content on the bottom"}]
しかし、jqueryは$ .ajax()メソッドに対して「parsererror」と言うエラーイベントを発生させます。