jqGrid与MVC3 url动作没有触发

时间:2012-02-13 14:28:05

标签: c# jquery asp.net-mvc-3 jqgrid razor

我试图关注jqgrid和MVC3最近更新的教程。我有这个脚本:

        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中有一个Controller,里面有:

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 个答案:

答案 0 :(得分:1)

尝试将Url.Action()来电更改为:

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

仅仅是一个FYI,这不是Razor语法。如果您确实使用Razor,它将如下所示:

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

最后一点要问:你的JavaScript / jQuery代码在哪里生活?它是否嵌入在View标记中?