Asp.net mvc 如何在mvc中重新加载jqgrid上发布muilti参数

Asp.net mvc 如何在mvc中重新加载jqgrid上发布muilti参数,asp.net-mvc,jqgrid,Asp.net Mvc,Jqgrid,在视图中,当单击时,我有一个要搜索的按钮,我想用新参数重新加载数据。 下面是我的剧本 function SearchClick() { var byer = $('#cbbSearch').val(); var start = $('#txtDate').val(); var end = $("#txtEndDate").val(); var search = $("#txtFind").val(); m

在视图中,当单击时,我有一个要搜索的按钮,我想用新参数重新加载数据。 下面是我的剧本

      function SearchClick() {
        var byer = $('#cbbSearch').val();
        var start = $('#txtDate').val();
        var end = $("#txtEndDate").val();
        var search = $("#txtFind").val();
        myJqgrid.jqGrid('setGridParam', { postData: { byer: byer, start: start, end: end, search: search } }).trigger('reloadGrid');
    } 
我在创建网格上的url是:

url: '/UIControl/SearchList?byer=' + byer + '&start=' + start + '&end=' + end + '&search=' + search
但在控制器中,值start、end、search始终为null,只有byer值为true。我不知道为什么? 下面是我的控制器

        public ActionResult SearchList(string byer = "---", string start = "", string end = "", string search = "")
    {
        List<StyleSearch> lisData = SearchStyle(byer, start, end, search);
    }
public ActionResult SearchList(string byer=“--”,string start=“”,string end=“”,string search=“)
{
List lisData=SearchStyle(byer、start、end、search);
}

第一次查看时,您的代码片段看起来很好。可能是其他问题,请尝试使用浏览器开发人员控制台(Inspect元素),这可能会显示一些javascript错误(如果有)

还有另一种方法可以将表单数据发回服务器,我在我的一个web应用程序中使用了该方法,到目前为止,该方法工作正常,没有任何问题。请试一试,看看这是否可行

myJqgrid.jqGrid('setGridParam', { 
    postData: {
            byer: function () {
                return $("#cbbSearch").val();
            },
            start: function () {
                return $("#txtDate").val();
            },
            end: function () {
                return $("#txtEndDate").val();
            },
            search: function () {
                return $("#txtFind").val();
            },
        },
}).trigger('reloadGrid');

注意:由于jQGrid是一个免费版本,所以在web上有许多可用的fork,比如,和。我使用的是Tony Tomov(Trirand)的if官方版本。

您确定视图本身的值不是空值吗?您可以尝试在
SearchClick
功能的末尾添加
console.log(byer,start,end,search)
来检查它吗?在SearchClick的末尾添加console.log(byer,start,end,search)单击是:ACE 2017/07/06 2017/06/28 DSGDG如果您需要更多帮助,我将分享整个代码。谢谢您的帮助。但我把代码放在如下位置:byer:function(){return“1”;},start:function(){return“2”;},end:function(){return“3”;},search:function(){return“4”;}但在控制器上的值为null。我不知道为什么?