[解決済み] リダイレクトフロムアクションフィルタ属性
2022-05-05 23:44:39
質問
においてリダイレクトを行う最良の方法は何でしょうか?
ActionFilterAttribute
. 私は
ActionFilterAttribute
という
IsAuthenticatedAttributeFilter
で、セッション変数の値をチェックするものでした。 もしこの変数がfalseなら、アプリケーションをログインページにリダイレクトさせたいのです。 私は、ルート名
SystemLogin
しかし、この時点ではどのようなリダイレクト方法であっても構いません。
解決方法は?
filterContext.Resultを設定します。
ルート名で
filterContext.Result = new RedirectToRouteResult("SystemLogin", routeValues);
というようなこともできます。
filterContext.Result = new ViewResult
{
ViewName = SharedViews.SessionLost,
ViewData = filterContext.Controller.ViewData
};
を使用したい場合
RedirectToAction
:
を作れば、公開される
RedirectToAction
メソッドをコントローラ(
できればそのベースコントローラ
を呼び出すだけです。
RedirectToAction
から
System.Web.Mvc.Controller
. このメソッドを追加することで、パブリックコールで
あなたの
RedirectToAction
をフィルタから削除します。
public new RedirectToRouteResult RedirectToAction(string action, string controller)
{
return base.RedirectToAction(action, controller);
}
そうすると、フィルターは次のようになります。
public override void OnActionExecuting(ActionExecutingContext filterContext)
{
var controller = (SomeControllerBase) filterContext.Controller;
filterContext.Result = controller.RedirectToAction("index", "home");
}
関連
-
[解決済み】プログラム実行中に1秒待つ
-
[解決済み】パラメータ付きRedirectToAction
-
[解決済み] HTMLページからのリダイレクト
-
[解決済み] C#の[Flags]Enum属性の意味とは?
-
[解決済み] なぜList<T>を継承しないのですか?
-
[解決済み] jQuery Ajax呼び出し後のリダイレクトリクエストを管理する方法
-
[解決済み] ELMAHをASP.NET MVCの[HandleError]属性で動作させる方法は?
-
[解決済み] 私のインターフェースがTaskを返さなければならない場合、操作不要の実装を持つための最良の方法は何ですか?
-
[解決済み】別のウェブページにリダイレクトするにはどうすればいいですか?
-
[解決済み】Angular2で外部URLにリダイレクトする方法は?
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] 保護レベルによりアクセス不能になりました。
-
[解決済み】C# ASP.NET使用時に「WebClientのリクエスト中に例外が発生しました。
-
[解決済み】クロススレッド操作が有効でない。作成されたスレッド以外のスレッドからアクセスされたコントロール
-
[解決済み】WPFでXamlファイルにコメントを追加する方法は?
-
[解決済み] 'IEnumerable<SelectListItem>' 型の ViewData アイテムで、キーが国であるものは存在しない。
-
[解決済み】Socket.Selectがエラー "An operation was attempted on something that is not a socket" を返す。
-
[解決済み】"指定されたパスのフォーマットはサポートされていません。"
-
[解決済み】HRESULTからの例外:0x800A03ECエラー
-
[解決済み】WebResource.axdとは何ですか?
-
[解決済み】ベースコントローラのOnActionExecutingからリダイレクトする方法は?