2012-11-16 115 views
0

腳本:jqgrid mvc json格式?

jQuery("#grid_table").jqGrid({ 
     url: '@Url.Action("GetAll", "Widget")', 
     datatype: "json", 
     mtype: 'GET', 
     colNames: ['id', 'name'], 
     colModel: [ 
      { name: 'id', index: 'id', width: 55, sortable: true, editable: false, editoptions: { readonly: true, size: 10} }, 
      { name: 'name', index: 'name', width: 200, editable: true } 
     ], 
     jsonReader: { 
      root: "rows", 
      page: "page", 
      total: "total", 
      records: "records", 
      repeatitems: false, 
      id: "id", 
      userdata: "userdata" 
     }, 
     rowNum: 10, 
     rowList: [10, 20, 30], 
     pager: jQuery('#gridpager'), 
     sortname: 'name', 
     viewrecords: true, 
     sortorder: "asc", 
     caption: "Wines" 
    }).navGrid('#gridpager'); 

控制器:

public ActionResult GetAll() 
    { 
     List<object> list = new List<object>(); 

     for (int i = 0; i < 20; i++) 
     { 
      var o = new 
      { 
       id = i.ToString(), 
       name = "name " + i.ToString() 
      }; 
      list.Add(o); 
     } 

     var result = new 
     { 
      page = "1", 
      total = "1", 
      records = "10", 
      rows = list.ToArray() 
     }; 

     string Jlist = Newtonsoft.Json.JsonConvert.SerializeObject(result); 

     return Json(Jlist, JsonRequestBehavior.AllowGet); 
    } 

JSON輸出:

enter image description here

和消息:沒有找到記錄!

我的代碼有什麼問題?

謝謝。

回答

0

問題是這一行:

string Jlist = Newtonsoft.Json.JsonConvert.SerializeObject(result); 

我刪除serilization行,然後它的作品。感謝您的回覆。

0

我認爲你的json閱讀器中提到「userdata」不存在於你的json中。

所以請在您的userdata字段中傳遞一些空值或任何值。