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