Сеанс очищается в ASP.NET MVC
Что происходит с Session между вызовом Session_Start и OnActionExecuting в ActionFilterAttribute.
Почему-то, когда я установил что-то вроде этого:
protected void Session_Start(object sender, EventArgs e)
{
Session["GoToBuyPage"] = true;
}
и попробуйте получить доступ к нему здесь в ActionFilterAttribute:
public override void OnActionExecuting(ActionExecutingContext filterContext)
{
bool goToPage = (bool)Session["GoToBuyPage"];
это всегда ноль. Есть идеи почему?
1 ответ
Нет никаких Session
свойство ActionFilterAttribute
, Так что я даже не знаю, как ваш код компилируется. Следующее прекрасно работает для меня:
Фильтр действий:
public class FooAttribute: ActionFilterAttribute
{
public override void OnActionExecuting(ActionExecutingContext filterContext)
{
bool goToPage = (bool)filterContext.HttpContext.Session["GoToBuyPage"];
filterContext.Result = new ContentResult
{
Content = goToPage.ToString()
};
}
}
контроллер:
public class HomeController : Controller
{
[Foo]
public ActionResult Index()
{
return View();
}
}
Session_Start
:
protected void Session_Start(object sender, EventArgs e)
{
Session["GoToBuyPage"] = true;
}