如何正确应用全局操作筛选器,使其在所有操作上触发,然后返回触发筛选器的操作的自定义结果?我将提供到目前为止所做工作的示例,但未能触发 the filterContext.Result = ...
Global.asax
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()方法,从这个上下文中,使用结果还是其他方式?谢谢!
发布于 2012-07-30 13:05:53
根据类似问题上的这个answer,您需要将Area参数赋值给空字符串。
var values = new RouteValueDictionary(new
{
controller = "Account",
action = "LogOff",
area = ""
});https://stackoverflow.com/questions/11722140
复制相似问题