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;                    
            }

今、呼び出しているアクションにnull可能なパラメーターがありません...

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

私は何かが欠けている必要があります。パラメータの設定が間違っていますか?

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

私はそれが何であるかを知っているかもしれないと思います... URLに2&があり、それも置き換える必要があります...

4

1 に答える 1

1

データ型intのpageinのパラメーターで、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 に答える