2010-07-20 52 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, 
... 

現在一切正常。