Asp.net mvc 5 获取错误UserSession.OnActionExecuting(ActionExecutingContext):在mvc 5中找不到可重写的合适方法?
我已经在MVC5中创建了一个演示,现在我需要在我的演示中创建一个自定义过滤器。我用过MVC5。 我需要检查每次执行的方法是ajax调用还是mvc中的action方法调用 在我的课堂上,我已经写了这样的代码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
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控制器?