3

グローバル アクション フィルターを適切に適用して、すべてのアクションでトリガーし、フィルターをトリガーしたアクションのカスタム結果を返す方法は? これまでに行ったことの例を提供しますが、トリガーできませんでし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);
     }
}

Result または他の方法を使用して、このコンテキストから LogOff() メソッドに適切にリダイレクトする方法は?? ありがとう!

4

1 に答える 1

1

同様の質問に対するこの回答によると、Areaパラメータを空の文字列に割り当てる必要があります。

var values = new RouteValueDictionary(new
{
    controller = "Account",
    action = "LogOff",
    area = ""
});
于 2012-07-30T13:05:53.277 に答える