2012-02-13 42 views
1

我试图按照jqgrid和MVC3最近更新的教程。我有这样的脚本:jqGrid MVC3 url action not firing

 myGrid.jqGrid({ 
      url: '<%= Url.Action("GridData") %>', 
      datatype: 'json', 
      mtype: 'POST', 
      colNames: ['A', 'B', 'C'], 
      colModel: [ 
       { name: 'A', index: 'A', key: true, width: 40 
       }, 
       { name: 'B', index: 'B', width: 40 
       }, 
       { name: 'C', index: 'C', width: 400 
       } 
      ], 
      pager: '#pager', 
      rowNum: 10, 
      rowList: [5, 10, 20, 50], 
      sortname: 'A', 
      sortorder: 'desc', 
      rownumbers: true, 
      viewrecords: true, 
      altRows: true, 
      //altclass: 'myAltRowClass', 
      height: '100%', 
      gridview: true, 
      jsonReader: { cell: "" }, 
      caption: 'Grid Title' 
     }); 

我在这里面Controllers文件夹呼叫者HomeController的一个控制器:

public JsonResult GridData(string sidx, string sord, int page, int rows) 
    { 
     return Json(new 
     { 
      total = 1, // we'll implement later 
      page = page, 
      records = 3, // implement later 
      rows = (
        new[] { 
         new[]{"A", "B", "C"}, 
         new[]{"1", "2", "3"}, 
         new[]{"X", "Y", "Z"} 
      }).ToList() 
     }); 
    } 

出于某种原因,我不能得到的GridData被调用。我在控制器中为该功能设置了一个断点,并且没有被击中。

我可能会错过什么?我是否需要以某种方式设置项目中的路由?

回答

1

试着改变你的Url.Action()调用此:

<%= Url.Action("GridData", "Home") %> 

而只是一个供参考,这是不是剃刀语法。如果你确实使用剃刀,它应该是这样的:

@Url.Action("GridData", "Home") 

而最后一点问:哪里是你的JavaScript/jQuery代码的生活?它嵌入在你的视图标记中吗?

+0

啊,是的。尽管我对Razor(和mvc)是新手,但我会花一点时间来克服那个愚蠢的问题。 – 2012-02-13 14:36:52

+0

@DougS。根本没有愚蠢。那么,那么解决你的问题呢? – 2012-02-13 14:45:28