2012-09-25 68 views
0

我試圖實現從我的控制器獲取信息的JQGrid,遵循本教程中的方法http://haacked.com/archive/2009/04/13/using-jquery-grid-with-asp.net-mvc.aspx當從控制器調用,在MVC 4 Web應用程序中使用JQGrid時出現「頁面」參數錯誤

我的控制器的代碼是:

public ActionResult GridData(string sidx, string sord, int page, int rows) 
    { 
     var jsonData = new 
     { 
      total = 1, 
      page = page, 
      records = 1, 
      rows = new[] 
      { 
       new {id = 1, cell = new[] {"", "", "", "", "", "", "f", "", "", "", "",  "", "", ""}}, 
      } 
     }; 
     return Json(jsonData, JsonRequestBehavior.AllowGet); 
    } 

我查看的代碼是:

<link rel="stylesheet" type="text/css" media="screen" href="css/ui-lightness/jquery-ui- 1.8.23.custom.css" /> 
<link rel="stylesheet" type="text/css" media="screen" href="css/ui.jqgrid.css" /> 
<link rel="stylesheet" type="text/css" media="screen" href="css/ui.multiselect.css" /> 

<script src="js/jquery-1.7.2.min.js" type="text/javascript"></script> 
<script src="js/i18n/grid.locale-en.js" type="text/javascript"></script> 
<script src="js/jquery.jqGrid.min.js" type="text/javascript"></script> 

<script type="text/javascript"> 
jQuery(document).ready(function() 
{ 
    jQuery("#list").jqGrid(
     { 
      url: '/WebFormUserList/GridData', 
      datatype: 'json', 
      mtype: 'GET', 
      colNames: 
       [ 
        'User_ID', 'Forename', 'Surname', 'Client_Code', 'User_Name', 
        'Password', 'Email', 'Gender', 'Report_Date', 'Email_Date', 
        'Test_Count', 'Test_Completed', 'Job_Function', 'Lookup_Value' 
       ], 
      colModel: 
       [ 
        { name: 'User_ID', index: 'User_ID', width: 'auto', align: 'centre' }, 
        { name: 'Forename', index: 'Forename', width: 'auto', align: 'centre' }, 
        { name: 'Surname', index: 'Surname', width: 'auto', align: 'centre' }, 
        { name: 'Client_Code', index: 'Client_Code', width: 'auto', align: 'centre' }, 
        { name: 'User_Name', index: 'User_Name', width: 'auto', align: 'centre' }, 
        { name: 'Password', index: 'Password', width: 'auto', align: 'centre' }, 
        { name: 'Email', index: 'Email', width: 'auto', align: 'centre' }, 
        { name: 'Gender', index: 'Gender', width: 'auto', align: 'centre' }, 
        { name: 'Report_Date', index: 'Report_Date', width: 'auto', align: 'centre' }, 
        { name: 'Email_Date', index: 'Email_Date', width: 'auto', align: 'centre' }, 
        { name: 'Test_Count', index: 'Test_Count', width: 'auto', align: 'centre' }, 
        { name: 'Test_Completed', index: 'Test_Completed', width: 'auto', align: 'centre' }, 
        { name: 'Job_Function', index: 'Job_Function', width: 'auto', align: 'centre' }, 
        { name: 'Lookup_Value', index: 'Lookup_Value', width: 'auto', align: 'centre' }, 
       ], 

      pager: jQuery('#pager'), 
      height: 'auto', 
      width: 1000, 
      rowNum: 10, 
      rowList: [5, 10, 20, 50], 
      sortname: 'Id', 
      sortorder: "desc", 
      viewrecords: true, 
      imgpath: '/css/ui-lightness/images', 
      caption: 'My first grid' 
     }); 
}); 

當我嘗試調用頁面網格,我得到的下面的錯誤。

參數字典包含空方法System.Web.Mvc.ActionResult GridData(System.String,System.String,Int32,Int32)的非空類型'System.Int32'的參數'page' '在'HFI_Assessment_Administration.Controllers.WebFormUserListController'中。可選參數必須是引用類型,可爲空類型,或者聲明爲可選參數。 參數名稱:參數

我非常感謝任何人可以提供的幫助或建議。如果有人也可以解釋sidx,sord,page,rows是如何通過的,這也會對我的理解有很大的幫助。

非常感謝!

回答

0

page未在您的示例中初始化。 試試這個:

 page = 1, 
     records = 1, 
     rows = new[] 
     { 
      new {id = 1, cell = new[] {"", "", "", "", "", "", "f", "", "", "", "",  "", "", ""}}, 
     } 
+0

嗨,感謝您的回覆。如果我更改我的代碼來刪除頁面和行,我的視圖返回此。 { 「總」:1, 「網頁」:1, 「記錄」:1, 「行」:[{ 「ID」:1, 「單元」:[ 「」, 「」, 「」, 「」, 「」 ,「「,「F」,」」,」」,」」,」」,」」,」」,」」]}]}。現在我真的很困惑。 – user1688784

相關問題