TempData和ViewData不在已部署的ASP MVC应用程序中呈现

时间:2010-04-13 22:09:01

标签: asp.net-mvc

我使用TempData和ViewData显示asp mvc应用程序的消息。他们是Site Master的一部分。 出于某种原因,TempData或ViewData都没有显示任何信息。它们在开发环境中按预期工作,但不在生产环境中工作。

我需要关注什么设置的想法?

代码是这样的:

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

4 个答案:

答案 0 :(得分:1)

TempData依赖于幕后的Session,因此如果您将其禁用,或禁用了Cookie,则可能无效。对于ViewData,如果在控制器操作中设置一个值,则该值无法显示在视图中。

答案 1 :(得分:0)

您还有其他信息吗?

你能确定是否正在设置errorMsg的TempData而不只是空?

答案 2 :(得分:0)

在您的操作中添加一些日志记录,并查看您期望的代码是否真的是真正令人兴奋的。 我使用log4net http://logging.apache.org/log4net/index.html

答案 3 :(得分:0)

您应该使用Keep或Peek方法多次检索TempData。因为如果“TempData”一旦被读取,它将在后续请求中不可用。 对于你的代码,我认为使用Peek方法更合适。

<h2><%= TempData.Peek("errorMsg").ToString() %></h2>