ViewBag против переменной Session
Меня просят отключить использование переменной Session для ViewBag.Property
,
В BaseAdminInterfaceController.cs - пожалуйста, не используйте
Session[<string>]
и вместо этого использоватьViewBag.Property
, Это объясняется тем, что метод OnActionExecuting выполняется несколько раз за запрос, и, следовательно, сохранение в Session (которое сохраняет за пределами жизненного цикла запроса) не является необходимым, ViewBag является простым, новым и хорошо работает в этом случае.
Вот код в BaseController:
protected override void OnActionExecuting(ActionExecutingContext filterContext)
{
if (Session["House"] == null) Session["House"] = Enums.Houses.Black;
}
Моя проблема здесь в том, что жизнь ViewBag.Property
существует только во время текущего запроса. Его нельзя использовать для передачи переменной от действия к действию или просмотра обратно в контроллер. ViewBag лучше?