2010-07-20 20 views
0

我已经使用jqGrid很长一段时间了,没有任何问题。 今天我试图在ASP.NET MVC 2项目中实现它,事情并没有按预期工作。
经过一番苦战,我意识到现在控制器在返回JSON数据时不接受GET调用。这是出于安全原因。 如果我强迫我的控制器,支持GET - 迫使这样的JSON响应:jqGrid和POST动词

return(Json(value, JsonRequestBehavior.AllowGet)) 

...和方法指定

[AcceptVerbs(HttpVerbs.Get)] 

一切工作正常,我的jqGrid显示结果。 我试图更改jqGrid的动词myType:'POST' 但网格停止工作。
我已经做了一些调试和跟踪,似乎jqGrid从不发布请求。 我的控制器总是收到一个GET。

有没有人可以帮助我。

感谢

阿尔贝托

示例:

jQuery("#ProvincesDynamicGrid").jqGrid({ 
    url: '<%=Url.Action("Fetch", "Provinces")%>', 
    postData: { id: '0' }, 
    datatype: 'json', 
    myType: 'POST', 
    colNames: ['Descr', 'Prov', 'Regione'], 
    colModel: [{ name: 'Description', index: 'Description', editable: false, resizable: true, sortable: false, width: 200, align: 'right' }, 
       { name: 'Initial', index: 'Initial', editable: true, editrules: { required: true, custom: true, custom_func: ValidateInitialColum }, resizable: true, sortable: false, width: 90, align: 'right' }, 
       { name: 'RegionDescription', index: 'RegionDescription', editable: false, resizable: true, sortable: false, width: 200, align: 'right' } 
       ], 
    pager: $('#ProvincesDynamicPager'), 
    rowNum: 11, 
    // rowList: [10, 20, 50], 
    width: 748, 
    height: 253, 
    viewrecords: true, 
    shrinkToFit: false, 
    scroll: false, 
    rownumbers: true, 
    hidegrid: false, 
    caption: 'Gestione Province', 
    cellEdit: true, 
    cellsubmit: 'remote', 
    cellurl: '<%=Url.Action("SaveProvince", "Provinces")%>', 
    onSelectRow: function(id) { 
     SelectedRowId = id; 
    }, 
    beforeSaveCell: function(rowid, cellname, value, iRow, iCol) { 

    }, 
    afterSubmitCell: function(serverresponse, rowid, cellname, value, iRow, iCol) { 
     var resp = jQuery.parseJSON(serverresponse.responseText); 
     // if (resp.Status == false) 
     return ([resp.Status, resp.Message]) 
     //alert(resp.Message); 
    } 
}); 

回答

1

由于托尼在jqGrid的论坛上建议我是拼写错误的MTYPE参数(的myType: 'POST') 所以确切的代码会是这样的:

jQuery("#ProvincesDynamicGrid").jqGrid({ 
    url: '<%=Url.Action("Fetch", "Provinces")%>', 
    postData: { id: '0' }, 
    datatype: 'json', 
    mtype: 'POST', 
    colNames: ['Descr', 'Prov', 'Regione'], 
    colModel: [{ name: 'Description', index: 'Description', editable: false, resizable: true, sortable: false, width: 200, align: 'right' }, 
       { name: 'Initial', index: 'Initial', editable: true, editrules: { required: true, custom: true, custom_func: ValidateInitialColum }, resizable: true, sortable: false, width: 90, align: 'right' }, 
       { name: 'RegionDescription', index: 'RegionDescription', editable: false, resizable: true, sortable: false, width: 200, align: 'right' } 
       ], 
    pager: $('#ProvincesDynamicPager'), 
    rowNum: 11, 
... 

现在一切正常。