2010-04-13 2 views
0

Я использую TempData и ViewData для отображения сообщений для приложения asp mvc. Они являются частью Мастера сайта. По какой-либо причине ни TempData, ни ViewData не отображаются какая-либо информация. Они работают так, как ожидалось, в среде разработки, но не в производстве.TempData и ViewData не отображаются в развернутом приложении ASP MVC

Любые идеи о том, на какой настройке я должен смотреть?

Код выглядит так:

<% if (TempData["errorMsg"] != null) 
    { %> 
     <h2><%= TempData["errorMsg"]%></h2> 
<% } %> 

ответ

0

У вас есть дополнительная информация?

Вы можете быть уверены, что TempData для errorMsg установлен, а не просто пуст?

1

TempData полагается на Session за кулисами, поэтому, если вы отключили его или отключили cookies, он может не работать. Что касается ViewData, если вы установите значение в действии контроллера, нет никакой причины, чтобы это значение не отображалось в представлении.

+0

+1 Если производство представляет собой сбалансированную нагрузку веб-ферму вместо одного сервера, что также может привести к тому, что Session/TempData не будут работать. –

0

Добавьте некоторые записи в свои действия и посмотрите, действительно ли код, который вы ожидаете, оправдывает. Я использую log4net http://logging.apache.org/log4net/index.html

0

Вы должны использовать методы Keep или Peek для временного восстановления TempData. Потому что, если «TempData» читается один раз, он не будет доступен в последующем запросе. Для вашего кода я думаю, что использование метода Peek более подходит.

<h2><%= TempData.Peek("errorMsg").ToString() %></h2> 
Смежные вопросы