我使用TempData和ViewData显示asp mvc应用程序的消息。他们是Site Master的一部分。 出于某种原因,TempData或ViewData都没有显示任何信息。它们在开发环境中按预期工作,但不在生产环境中工作。
我需要关注什么设置的想法?
代码是这样的:
<% if (TempData["errorMsg"] != null)
{ %>
<h2><%= TempData["errorMsg"]%></h2>
<% } %>
答案 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>