Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2012/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc 5 获取错误UserSession.OnActionExecuting(ActionExecutingContext):在mvc 5中找不到可重写的合适方法?_Asp.net Mvc 5_Action Filter - Fatal编程技术网

Asp.net mvc 5 获取错误UserSession.OnActionExecuting(ActionExecutingContext):在mvc 5中找不到可重写的合适方法?

Asp.net mvc 5 获取错误UserSession.OnActionExecuting(ActionExecutingContext):在mvc 5中找不到可重写的合适方法?,asp.net-mvc-5,action-filter,Asp.net Mvc 5,Action Filter,我已经在MVC5中创建了一个演示,现在我需要在我的演示中创建一个自定义过滤器。我用过MVC5。 我需要检查每次执行的方法是ajax调用还是mvc中的action方法调用 在我的课堂上,我已经写了这样的代码 public class UserSession : System.Web.Http.Filters.ActionFilterAttribute { public override void OnActionExecuting(ActionExecutingContext filt

我已经在MVC5中创建了一个演示,现在我需要在我的演示中创建一个自定义过滤器。我用过MVC5。 我需要检查每次执行的方法是ajax调用还是mvc中的action方法调用

在我的课堂上,我已经写了这样的代码

 public class UserSession
 : System.Web.Http.Filters.ActionFilterAttribute
{
    public override void OnActionExecuting(ActionExecutingContext filterContext)
    {
        var session = filterContext.HttpContext.Session;
        if (ApplicationSession.IsSessionAlive)
            return;

        if (filterContext.HttpContext.Request.IsAjaxRequest())
        {
            var ajaxRedirectTarget = new RouteValueDictionary { { "action", "FailAuthenticationAjax" }, { "controller", "Home" } };
            filterContext.Result = new RedirectToRouteResult(ajaxRedirectTarget);
        }
        else
        {
            var redirectTarget = new RouteValueDictionary { { "action", "Login" }, { "controller", "Account" } };
            filterContext.Result = new RedirectToRouteResult(redirectTarget);
        }
    }
}
但是我得到了如下错误UserSession.OnActionExecuting(ActionExecutingContext):找不到合适的方法来覆盖

在我像这样把这个类放到我的控制器上之后

[UserSession]
public class DashboardController
{

}

有人知道如何在mvc 5中解决这个问题吗?

@ChetanRanpariya我点击了System.Web.Http.Filters.ActionFilterAttribute,在元数据文件中,我的操作方法如下所示:show public virtual void on ActionExecuting(HttpActionContext actionContext);没错。这就是你应该重写的方法。您正在使用不同的signatureDashboardController重写方法是web api控制器还是mvc控制器?