Это изначально выглядело как игра, но после бит я закончил эту проблему довольно долгое время. Вот моя ситуация. Я запускаю уведомления из моей модели домена.Как очистить сеанс после просмотра рендеринга
Эти уведомления являются объектами, содержащими заголовок и описание, которые я храню в коллекции, чтобы отображать их в верхней части страниц моего веб-сайта. Однако у меня возникли проблемы с поиском соответствующего механизма «сеанса» с MVC.
Я начал с использования HttpContext.Items для хранения всех моих данных сеанса, но я узнал, что он не подходит для сценариев перенаправления - когда я перенаправляю пользователя к другому методу действий. В действительности создается новый HttpContext и объект Items теряется.
Следовательно, я попытался сохранить свой сеанс в HttpContext.Session, но проблема, с которой я сейчас сталкиваюсь, заключается в том, что нет времени для очистки сеанса (я не хочу передавать уведомления с одного запроса другому) , OnActionExecuted и OnResultExecuted кажутся запущенными до того, как откроется представление.
Вот как я показывать уведомления на моей странице Layout:
@foreach(var notification in ISession.Notifications)
{
@Html.Partial("_NotificationPartial", new Mvc.Models.NotificationViewModel(notification))
}
ISession отображается в магазин (HttpContext.Items/HttpContext.Session) в моем контейнере МОК.
У вас есть обходная идея?
Или 'TempData.Add (ключ, значение)', хотя это будет сгенерировано исключение, если ключ уже существует. –