RedirectToActionはクエリパラメータでリダイレクトしますか?
-
28-10-2019 - |
質問
ASP.NET MVCアプリケーションに取り組んでいて、奇妙なことに遭遇しました。
次のような2つのコントローラーアクションがあります: ジェネラコディセタグプレ
最初に、パラメータとしてnullを指定してReview
アクションを呼び出します。これにより、アイテムのリストを含むWebページが表示されます。アイテムは、IDが設定された最初のレビューアクションにリンクされています。
レビューアクションにIDが提供されると、このアイテムの編集Webページが返されます。いくつかの変更後に送信を押すと、2番目のレビューアクション(投稿)になります。ここにアイテムが保存されます。
これまでのところすべて問題ありません。
さて、最後のレビューアクション(投稿)で、最後に次のコードを取得しました: ジェネラコディセタグプレ
これにより、最初のレビューアクションが再度トリガーされます。問題は、以前のIDが提供されることです。私の考えでは、RedirectToActionはパラメータを提供しませんか?
解決
RedirectToActionはパラメータを提供しないと思いましたか?
あなたの理解は間違っています。ターゲットURLに同じ名前のルートパラメータが含まれている場合、modelstateに存在するパラメータは自動的に転送されます。この場合、(おそらく入力フィールドの一部またはURLの一部として)投稿されている
id
パラメーターがあり、元のIndexアクションにリダイレクトすると、ルート定義の最後にid
トークンが含まれるためです。メソッドがそれを埋めます。この動作を回避するための回避策として、リダイレクト時に
RedirectToAction
パラメータを送信しないように明示的に指定できます。 ジェネラコディセタグプレ