gpt4 book ai didi

c# - 如何防止根据条件执行 Controller 操作?

转载 作者:行者123 更新时间:2023-11-30 20:03:36 25 4
gpt4 key购买 nike

我有一个包含许多操作的 Controller 。我需要根据这种情况阻止执行某些操作:

if (Session["MyObject"] == null) return RedirectToAction("Introduction");

它应该重定向到默认的 Introduction 操作。

我可以把这个条件放在每个 Action 中,但我想只在一个地方定义这个条件,比如在 Controller 的构造函数中。

有什么想法吗?谢谢。

最佳答案

这是一个快速模型,但我认为这个想法成立

public class CheckSessionFilterAttribute : ActionFilterAttribute
{
public override void OnActionExecuting(ActionExecutingContext filterContext)
{
if (filterContext.HttpContext.Session["MyObject"] == null)
{
// redirect must happen OnActionExecuting (not OnActionExecuted)
filterContext.Result = new RedirectToRouteResult(
new System.Web.Routing.RouteValueDictionary {
{"controller", "Tools"}, {"action", "CreateSession"}

}
base.OnActionExecuting(filterContext);
}
}

关于c# - 如何防止根据条件执行 Controller 操作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14610518/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com