2012-11-16 75 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字段中传递一些空值或任何值。