Меня просят отключить использование переменной 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 лучше?