将变量通过Jqgrid中的URL传递给mvc中的控制器

时间:2011-05-19 13:19:39

标签: asp.net-mvc-2 jqgrid

如何将值从url传递到Jqgrid,问题是需要根据上一页的编辑链接加载Jqgrid,我们的URL如下:

    http://localhost:49771/Search/EditSearchResults?id=ID_HelpTopics&action=edit

我需要能够在URL中使用此id来填充网格数据,因此我需要将此值通过网格传递给控制器​​以获取结果,我所拥有的网格如下:

            $("#list").jqGrid({
            url: '<%= Url.Action("EditSearchResults", new {controller = "JSonData" }) %>', 
            datatype: 'json',
            colNames: ['Language', 'ID'],
            colModel: [
                { name: 'Language', index: 'Language', editable: false, width: 40, align: 'left', sortable: false },
               { name: 'ID', index: 'ID', width: 40, editable: true, edittype: "text", align: 'left', editoptions: { size: 5, maxlength: 30 }, sortable: false }, ],

            editurl: '<%= Url.Action("EditSearchResults", new {controller = "JSONData"}) %>',
            pager: '#pager',
            //autowidth: true,
            width: "500",
            autowidth: true,
            rowNum: 20,
            height: "200",
            loadonce: false,
            rowList: [5, 10, 20, 50],
            recordtext: "View Records {0} - {1} of {2}",
            emptyrecords: "No records to view",
            loadtext: "Loading...",
            pgtext: "Page {0} of {1}",
            sortname: 'Results',
            sortorder: "desc",
            viewrecords: true,
            scroll: false,
            loadonce: false,
            caption: 'Edit Search Results',
            ondblClickRow: function (id) {
                if (id != null) {
                        jQuery('#grid').jqGrid('restoreRow', lastsel);
                        jQuery('#list').jqGrid('saveRow', id);
                        jQuery('#list').jqGrid('editRow', id, true, false, processEdit);
                        lastsel = id;
                }

            }
        });
        });

如何使用当前URL将id传递给控制器​​以填充jqgrid,控制器和jqgrid应该如何?有什么想法吗?

1 个答案:

答案 0 :(得分:3)

Url.Action将匿名对象作为参数集

url: '<%= Url.Action("EditSearchResults", 
                     new {controller = "JSonData" },
                     new {id = Request.Params[id] }) %>',

然而,最好是制作模型的那一部分而不是依赖于请求。