0

当我尝试将我的网站与 Firefox 和 chrome 一起使用时,我遇到了一个我没想到的异常......

The parameters dictionary contains a null entry for parameter 'page' of non-nullable type 'System.Int32' for method 'System.Web.Mvc.ActionResult EditEncounterReturnPage(Int32, Int32, Int32, Int32)'

现在,同样的调用在 IE 9 中也可以正常工作……我实际上将把价值归结为我的行动,一点儿障碍都没有。

这是我用来发送参数的 jquery...

            ondblClickRow: function (id) {
                var pageInfo = $(this).jqGrid('getGridParam', 'page');
                var rowSZ = $(this).jqGrid('getGridParam', 'rowNum');
                debugger;
                var dummyURL = '@Url.Action("EditEncounterReturnPage", "EditEncounter", new { encounterId = "-2", popId = (int)TempData["POPULATIONID"], page = "-3", rowSize = "-4" })';
                dummyURL = dummyURL.replace("-2&", id + "&");
                dummyURL = dummyURL.replace("-3&amp", pageInfo + "&");
                dummyURL = dummyURL.replace("-4&amp", rowSZ + "&");
                var path = dummyURL;
                window.location = path;                    
            }

现在我在调用的操作中没有可为空的参数......

    public ActionResult EditEncounterReturnPage(int encounterId, int popId, int page, int rowSize) { ...

我必须错过一些东西。我的参数设置不正确?

/EditEncounter/EditEncounterReturnPage?encounterId=1900&popId=2&page=2&;rowSize=-4

我想我可能知道它是什么......我在网址中有 2& 我也需要替换它......

4

1 回答 1

1

您的数据类型 int 的 page in 参数,并且您在双引号中传递 page = "-3" ,这告诉 jqgrid 它是字符串。您需要删除双引号并像下面一样传递-3,这应该可以

        ondblClickRow: function (id) {
            var pageInfo = $(this).jqGrid('getGridParam', 'page');
            var rowSZ = $(this).jqGrid('getGridParam', 'rowNum');
            debugger;
            var dummyURL = '@Url.Action("EditEncounterReturnPage", "EditEncounter", new { encounterId = "-2", popId = (int)TempData["POPULATIONID"], page = -3, rowSize = "-4" })';
            dummyURL = dummyURL.replace("-2&", id + "&");
            dummyURL = dummyURL.replace("-3&amp", pageInfo + "&");
            dummyURL = dummyURL.replace("-4&amp", rowSZ + "&");
            var path = dummyURL;
            window.location = path;                    
        }
于 2013-03-01T17:03:31.527 回答