我可以在ASP.NET MVC中跳过一个ActionFilter吗?

4
我在一个基类上有一个操作过滤器属性,所有控制器都继承自该基类。我希望它(过滤器)可以在除了一个方法之外的所有方法上工作。这样做有可能吗?如何实现?
1个回答

4

这种方法有点hackish,但是你可以在过滤器的OnActionExecuting方法中测试该操作,像这样:

var controllerName = filterContext.RouteData.Values["controller"].ToString();
var actionName = filterContext.RouteData.Values["action"].ToString();
if (controllerName == "Foo" && actionName == "Bar")
{
    return;
}
//do normal stuff

另一个选项是创建一个自定义的操作属性来封装这个功能。我用一个自定义的授权属性来实现了这个,它跳过了我的账户控制器上的登录方法。 - Todd Smith

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接