0

ログイン後にリダイレクトを取得して、希望どおりに機能させるのに問題が発生しています。そこで、現在のページをビューバッグに保存し、それを使用してリダイレクトするというアイデアを思いついたので、ページがmydomain.com/debate/1の場合、viewbadに「/ debate/1」が保存されます。私にこの苦情を与えることをリダイレクトしてみてください

パラメータディクショナリには、'PoliticalDebate.Controllers.DebateController'のメソッド'System.Web.Mvc.ActionResult DebateDetails(Int32)'のnull許容型ではないタイプ'System.Int32'のパラメータ'id'のnullエントリが含まれています。オプションパラメータは、参照型またはnull許容型であるか、オプションパラメータとして宣言されている必要があります。パラメータ名:パラメータ

ただし、mydomain.com / Debate / 1を手動で入力すると、期待どおりに機能します。

リダイレクトを希望どおりに機能させる方法はありますか?

4

2 に答える 2

2

コードが表示されないため、あなたがやろうとしている方法についてコメントすることはできません (これは機能していません)。今後の投稿では、コードを投稿してください。これは、単にコントローラーのデフォルト アクションにリダイレクトする場合のリダイレクト方法の 1 つです。

return this.RedirectToAction("Index", new { id = debateDetailsID } );

あなたが本当に何をしようとしているのかを伝えるのは非常に難しいですがdebate/1、呼び出されているメソッドがDebateDetails一致しないことにまだ言及しているためです(デフォルトルートを変更していない限り、コードはわかりません)。

アップデート

コメントによると、MapRoute にエラーがあります。MapRoute は次のようになります。

routes.MapRoute("Debate Details", 
                "debate/{id}", 
                 new { controller = "Debate", 
                       action = "DebateDetails",
                       // this id value is missing 
                       // so it's not being passed to the controller
                       id = UrlParameter.Optional } );
于 2012-07-09T20:28:30.067 に答える
0

答えは苦情にあります。この特定のケースでは、パラメーターを送信しているため、これが指定されているかどうかを確認してください

あなたのコードは次のように見える必要がありますredirectToAction("nameOfAction", new {id = yourIdOnViewBag}

于 2012-07-09T20:34:58.363 に答える