フィルタを別のアクションにリダイレクトさせるには?
2023-07-20 13:58:02
質問
RedirectToAction
は保護されており、アクションの中でのみ使用することができます。しかし、フィルタの中でリダイレクトしたい場合は?
public class IsGuestAttribute: ActionFilterAttribute
{
public override void OnActionExecuting(ActionExecutingContext filterContext)
{
if (!Ctx.User.IsGuest)
filterContext.Result = (filterContext.Controller as Controller)
.RedirectToAction("Index", "Home");
}
}
どのように解決するのですか?
RedirectToAction
を構築するための単なるヘルパーメソッドです。
RedirectToRouteResult()
を作成するためのヘルパーメソッドです。
RedirectToRouteResult()
を渡すだけです。
RouteValueDictionary()
をアクションの値で渡します。
下のコメントにある @Domenic のコードを基にした完全なサンプルです。
public class IsGuestAttribute: ActionFilterAttribute
{
public override void OnActionExecuting(ActionExecutingContext filterContext)
{
if (!Ctx.User.IsGuest)
{
filterContext.Result = new RedirectToRouteResult(
new RouteValueDictionary
{
{ "controller", "Home" },
{ "action", "Index" }
});
}
}
}
関連
-
[解決済み】VS 2015でコントローラからビューを追加できない : "選択されたコードジェネレータの実行にエラーが発生しました"
-
[解決済み] RedirectToActionのパラメータとしてmodelを渡すことはできますか?
-
[解決済み] ASP.NET MVCのビューを文字列としてレンダリングする方法は?
-
[解決済み] ASP.NET MVCにおけるApiControllerとControllerの相違点
-
[解決済み] ASP.NET MVCでHTML-5のdata-*属性でダッシュを使用する方法
-
[解決済み】Html5 data-* with asp.net mvc TextboxFor html attributes
-
[解決済み] [Solved] ASP.NET MVCでアクションの絶対URLを見つけるにはどうすればよいですか?
-
[解決済み】Java Server Faces 2.0の主なデメリットは何ですか?
-
[解決済み】ベースコントローラのOnActionExecutingからリダイレクトする方法は?
-
[解決済み] ASP.NET MVCにおけるセッション変数
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] glyphicons-halflings-regular.woff2 not foundに関するエラーを削除する方法
-
[解決済み] Kendo UI MVC用パスワードテキストボックス
-
[解決済み】ASP.NET RazorのHTML.ActionLinkとUrl.Actionの比較
-
[解決済み】1つのビューに複数のモデルを表示する
-
[解決済み】認証や認可に失敗した場合、AuthorizeAttributeがログインページにリダイレクトされるのはなぜですか?
-
[解決済み】ASP.NET MVCのルートをサブドメインに基づいて作成することは可能ですか?
-
[解決済み】MVC4 DataType.Date EditorForがChromeで日付の値を表示しない、Internet Explorerでは問題なし。
-
[解決済み] asp.net mvc: なぜ Html.CheckBox は追加の隠された入力を生成するのですか?
-
[解決済み] セキュリティ透過的なメソッド 'WebMatrix.WebData.PreApplicationStartCode.Start()' による試行。
-
[解決済み] Razorを使ってエンコードされていないJsonをViewに書き込むにはどうしたらいいですか?