在我的应用程序中,我将在首次加载页面时从服务器端获取数据表,并使用jqgrid进行渲染。
我似乎无法让它工作,当我请求下面示例的DummyView
页面时,Web浏览器会弹出一条消息,要求我下载application/json
文件,表明事情是错误的。这是我的Jquery代码:
$(document).ready(function(){
$("#list4").jqGrid({
url:'../../ViewRecord/DummyView',
datatype:'JSON',
mtype: 'GET',
colNames:['Id','Name','Description'],
colModel:[
{name:'id',index:'id',width:55,resizable:true},
{name:'name',index:'name',width:90,resizable:true},
{name:'description',index:'description',width:120,resizable:true}],
pager: jQuery('#pager'),
rowNum:10,
rowList:[5,10,20,50],
sortname: 'Id',
sortorder: "desc",
viewrecords: true,
imgpath:'/images',
caption: 'My first grid'
});
});
这是我的ViewRecord/DummyView
控制器方法:
public ActionResult DummyView()
{
var page = new { page = 1 };
var rows = new object[2];
rows[0] = new { id = 222, cell = new[] { "222", "Blue", "This is blue" } };
rows[1] = new { id = 2, cell = new[] { "2", "Red", "This is red" } };
//var endarray = new[] {page, rows};
var result = new JsonResult();
result.Data = new { page = 1, records = 2, rows, total = 1 };
return result;
}
知道如何让jqgrid与ASP.NET MVC一起使用吗?
答案 0 :(得分:1)
我有一个完整的,有效的演示解决方案here。我还有一系列关于使用MVC和jqGrid一起开始here的帖子。演示解决方案包括LINQ extensions,因此您可以执行以下操作:
public JsonResult ListGridData(int page, int rows, string search, string sidx, string sord)
{
var model = repository.SelectAll().ToJqGridData(page, rows, sidx + " " + sord, search,
new[] { "Column1", "Column2", "Column3" })
return Json(model);
}
请注意,对于MVC 2,您必须包含JsonRequestBehavior.AllowGet
才能使用GET
HTTP谓词。这是安全的,因为返回的根数据不是数组。
答案 1 :(得分:0)
如果您调用以获取数据,则可以使用jQuery;
$(document).ready( function() {
//your code here
});
我知道这会强迫你做一个jQuery回发,但你没有提到这是一个问题。