我的jqgrid返回“服务器遇到意外情况,无法满足请求”:
$('#list').jqGrid({
url: "/DesktopModules/MVC/CW.GridTest/Item/getArtists2",
datatype: 'json',
mtype: 'POST',
headers: {
"ModuleId": ModuleId,
"TabId": TabId,
"RequestVerificationToken": rvtoken
},
colNames: ['ArtistID', 'ArtistName', 'City'],
colModel: [
{ name: 'ArtistID', index: 'ArtistID', width: 80, align: 'left', editable: false },
{ name: 'Name', index: 'ArtistName', width: 120, align: 'left', editable: true },
{ name: 'Location', index: 'City',width: 60,align: 'left',editable: true,
edittype: "select",
editoptions: { value: "FE:FedEx; IN:InTime; TN:TNT" }
}
],
height: '100%',
rowNum: 10,
emptyrecords: 'No records',
//sortname: 'ArtistName',
//sortorder: 'desc',
viewrecords: true,
caption: 'jqGrid First Grid',
width: 300,
//gridview: true,
jsonReader:
{
root: "rows",
page: "page",
total: "total",
records: "records",
repeatitems: false,
Id: "0"
},
});
调试时,jqgrid从不触发我的控制器。我只是知道错误。
另一方面,在标准的ajax调用中,完全相同的url可以正常工作:
function update() {
$.ajaxSetup({ cache: false });
var rvtoken = $("input[name='__RequestVerificationToken']").val();
var ModuleId = @Dnn.ModuleContext.ModuleId;
var TabId = @Dnn.ModuleContext.TabId;
//$("#notice_div").html('Loading..');
$.ajax({
url: "/DesktopModules/MVC/CW.GridTest/Item/getArtists2",
method: "Post",
headers: {
"ModuleId": ModuleId,
"TabId": TabId,
"RequestVerificationToken": rvtoken
},
success: function(data) {
$("#dvBands").html(data + "<br/>" + new Date().toISOString());
$("#notice_div").html('');
window.setTimeout(update, 10000);
},
error: function(XMLHttpRequest, textStatus, errorThrown) {
$("#notice_div").html('Timeout contacting server..');
window.setTimeout(update, 60000);
}
});
标准ajax工作得很好。我可以看到整个json字符串的格式都是正确的。
如何更正jqgrid以使其ajax工作,或者更正我的控制器,或者如何设置jqgrid以便可以从工作的ajax向其传递数据?