質問

ASP.NET MVCアプリケーションに取り組んでいて、奇妙なことに遭遇しました。

次のような2つのコントローラーアクションがあります: ジェネラコディセタグプレ

最初に、パラメータとしてnullを指定してReviewアクションを呼び出します。これにより、アイテムのリストを含むWebページが表示されます。アイテムは、IDが設定された最初のレビューアクションにリンクされています。

レビューアクションにIDが提供されると、このアイテムの編集Webページが返されます。いくつかの変更後に送信を押すと、2番目のレビューアクション(投稿)になります。ここにアイテムが保存されます。

これまでのところすべて問題ありません。

さて、最後のレビューアクション(投稿)で、最後に次のコードを取得しました: ジェネラコディセタグプレ

これにより、最初のレビューアクションが再度トリガーされます。問題は、以前のIDが提供されることです。私の考えでは、RedirectToActionはパラメータを提供しませんか?

役に立ちましたか?

解決

RedirectToActionはパラメータを提供しないと思いましたか?

あなたの理解は間違っています。ターゲットURLに同じ名前のルートパラメータが含まれている場合、modelstateに存在するパラメータは自動的に転送されます。この場合、(おそらく入力フィールドの一部またはURLの一部として)投稿されているidパラメーターがあり、元のIndexアクションにリダイレクトすると、ルート定義の最後にidトークンが含まれるためです。メソッドがそれを埋めます。

この動作を回避するための回避策として、リダイレクト時にRedirectToActionパラメータを送信しないように明示的に指定できます。 ジェネラコディセタグプレ

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top