Asp.net mvc 2 IActionFilter OnActionExecuting函数之后的操作调用中的问题

Asp.net mvc 2 IActionFilter OnActionExecuting函数之后的操作调用中的问题,asp.net-mvc-2,onactionexecuting,Asp.net Mvc 2,Onactionexecuting,我正在使用IActionFilter OnActionExecuting函数进行一些安全检查,但当它调用它时,检查一个条件,如果该条件失败,我想将其重定向到登录操作,但问题是,它也调用下一个操作,如果该条件失败,我不想执行该操作。这应该可以完成以下工作: public class MyCustomActionFilter : ActionFilterAttribute { public override void OnActionExecuting(ActionExecutingCont

我正在使用IActionFilter OnActionExecuting函数进行一些安全检查,但当它调用它时,检查一个条件,如果该条件失败,我想将其重定向到登录操作,但问题是,它也调用下一个操作,如果该条件失败,我不想执行该操作。

这应该可以完成以下工作:

public class MyCustomActionFilter : ActionFilterAttribute
{
    public override void OnActionExecuting(ActionExecutingContext filterContext)
    {
        if (someCondition)
        {
            var values = new RouteValueDictionary(new { 
                action = "index",
                controller = "login"
            });
            filterContext.Result = new RedirectToRouteResult(values);
        }
        base.OnActionExecuting(filterContext);
    }
}

确保您的属性源自。

+1谢谢您的支持。我的错误是我没有像base.OnActionExecuting(filterContext)那样重写它;如果请求是基于ajax的,那么它不会重定向到该页面,而是在窗口中打开该页面