首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何将全局ActionFilter应用于所有控制器并返回结果?

如何将全局ActionFilter应用于所有控制器并返回结果?
EN

Stack Overflow用户
提问于 2012-07-30 13:00:43
回答 1查看 4K关注 0票数 3

如何正确应用全局操作筛选器,使其在所有操作上触发,然后返回触发筛选器的操作的自定义结果?我将提供到目前为止所做工作的示例,但未能触发 the filterContext.Result = ...

Global.asax

代码语言:javascript
运行
复制
public static void RegisterGlobalFilters(GlobalFilterCollection filters)
{
    filters.Add(new HandleErrorAttribute());
    filters.Add(new RequestCounter());
}

public class RequestCounter : ActionFilterAttribute
{

    public override void OnResultExecuted(ActionExecutingContext filterContext)
    {  
          if (!LogCounter())
          {
               if (!filterContext.IsChildAction)
               {
                   var values = new RouteValueDictionary(new
                   {
                       controller = "Account",
                       action = "LogOff"
                   });

                   filterContext.Result = new RedirectToRouteResult(values);

                   //--> Here, the action is not redirected to LogOff method,
                   //    the goal is to logoff user, program just continues???
               }
          }

          base.OnResultExecuted(filterContext);
     }
}

如何正确地重定向到LogOff()方法,从这个上下文中,使用结果还是其他方式?谢谢!

EN

回答 1

Stack Overflow用户

发布于 2012-07-30 13:05:53

根据类似问题上的这个answer,您需要将Area参数赋值给空字符串。

代码语言:javascript
运行
复制
var values = new RouteValueDictionary(new
{
    controller = "Account",
    action = "LogOff",
    area = ""
});
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11722140

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档