0

ここで何が起こっているのかわかりません。

私が持っているjqueryスクリプトで呼び出されるアクションメソッドがあります...

                    ondblClickRow: function (id) {
                        debugger;
                        var dummyURL ='@Url.Action("EditEncounter", "EditEncounter", new { encounterId = 0, popId = (int)TempData["POPULATIONID"] })';
                        var path = dummyURL.replace("-2", id);
                        document.location.href = path;
                        //new { encounterId = temp.EncounterId, popId = (int)TempData["POPULATIONID"] }'
                    }

何らかの理由で、クロムを使用してこのルートを介してこのページに移動しようとすると、次の例外が発生します。

The parameters dictionary contains a null entry for parameter 'popId' of non-nullable type 'System.Int32' for method 'System.Web.Mvc.ActionResult EditEncounter(Int32, Int32)' in 'FocusedReadMissionsRedux.Controllers.EditEncounterController'. An optional parameter must be a reference type, a nullable type, or be declared as an optional parameter.
Parameter name: parameters

しかし IE では、アクション メソッドを呼び出して、問題なく適切なページに移動します。私は何かが欠けている必要がありますか?

更新 このクエリ文字列を取得していることに気付きました...

encounterId=2245&popId=2

&「 」と「 」に注意してくださいamp;。ルートが正しく設定されていないと思います。私はいくつかのことを試してみて、何が起こるかを男性に知らせます.

確認済み

これは私がインターネットエクスプローラーに持っているルートです

encounterId=2245&popId=2

そして、それは機能します。この特定のリクエストでなぜこれが起こるのかを理解する必要があります。

アップデート

プログラムをデバッグしようとすると、生成される cshtml ファイルが Visual Studio によって更新されません。誰もがこれを経験し、それを乗り越える方法はありますか?

4

2 に答える 2

0

タイプに設定popIdしてみましたnullableか?オプションのパラメーターが整数であり、null許容整数ではないのが気に入らないようです。もちろん、コントローラーとビューは表示されませんが、これがエラー メッセージに表示されている内容です。下記参照。

int?の代わりにa を追加int

したがって、ViewResultコントローラーにnull可能なパラメーターが必要です。

public ViewResult EditEncounter(int? encounterId, int? popId)

TempData更新:さらに議論した結果、IEがオブジェクトを満たしている間、Chromeはオブジェクトを埋めたり承認したりしていないようです。おそらく、このプロセスに関する詳細情報を投稿してください。

于 2013-01-14T21:33:10.273 に答える