我有几个动作方法可以在页面上的每个动作上启动。与此类关联的属性之一定义了自定义属性,这又调用了在同一控制器类中定义的方法(action=method)。
但是不应该在所有动作上调用这个动作方法,在重定向到这个特定动作之前如何检查?
我有几个动作方法可以在页面上的每个动作上启动。与此类关联的属性之一定义了自定义属性,这又调用了在同一控制器类中定义的方法(action=method)。
但是不应该在所有动作上调用这个动作方法,在重定向到这个特定动作之前如何检查?
您可以从过滤器上下文或控制器上下文对象中读取当前操作的值,RouteData
如下所示:
public class MyAttribute : ActionFilterAttribute
{
public override void OnResultExecuting(ResultExecutingContext filterContext)
{
var action = filterContext.RouteData.Values["action"];
if(action == "xxx")
...// then
base.OnResultExecuting(filterContext);
}
}