ActionExecutingContext 过滤器上的 MVC 区域错误

MVC Area error on ActionExecutingContext Filter

我在 ActionExecutingContext Filter 上收到 non static method requires a target 错误,此过滤器将搜索数据库中的一些数据并通过 ViewBag of the filterContext 将其提供给调用的控制器,这是代码:

public override void OnActionExecuting(ActionExecutingContext filterContext)
{
    using (var db = new Entities())
    {
        var redirect = MvcApplication.reqContext;
        var seos     = db.SEO.Where(x => x.ID == redirect.seoId).ToList();
        var desconto = db.QueroDesconto.First();

        //Recupera cookie banner home
        filterContext.Controller.ViewBag.BannerHome = filterContext.HttpContext.Request.Cookies["BannerHome"] != null ? int.Parse(filterContext.HttpContext.Request.Cookies["BannerHome"].Value) : 0;

        filterContext.Controller.ViewBag.objEstados    = objEstados;
        filterContext.Controller.ViewBag.Desconto      = desconto;

        base.OnActionExecuting(filterContext);
    }
}

事实是,它只在我访问 MVC 区域时发生,而在我调试时从未发生过

问题出在我的数据库搜索中,我在 redirect var 中收到一个空值。

此 var 仅填充在我的路由处理程序控制器中的根项目中,每次我 'ask' 为页面执行时,由于我的区域没有执行此控制器,我总是会得到 null值。

现在,唯一在调试中工作的事情正在发生,因为每次我调试它时,默认情况下,我都会从根项目开始,因此使用空值