我使用TempDate["Message"]
作为用户确实在我的网站像这样的事情,以显示小更新横幅:TempData [“message”]不可靠 - 我做错了什么?
[AcceptVerbs(HttpVerbs.Post), Authorize(Roles = "Admins")]
public ActionResult Delete(int id)
{
_Repo.DeletePage(id); // soft-delete
TempData["Message"] = "Page deleted!";
return RedirectToAction("Revisions", "Page", new { id = id });
}
然后在我的母版页我有这样的:
<%-- message box (show it only if it contains a message) --%>
<% string Message = (TempData["Message"] ?? ViewData["Message"]) as string;
if(!string.IsNullOrEmpty(Message)){
%>
<div id="message"><%:Message %></div>
<% }
TempData["Message"] = null; ViewData["Message"] = null; %>
我打这两个的TempData和ViewData,因为我在某处读取TempData应该用于重定向,否则应该使用ViewData。
问题是:通常邮件不会马上显示出来。有时需要一两次点击才能显示消息。这很奇怪。
任何想法?
您是否在其他地方通过ajax请求设置TempData? – Lester 2010-06-21 20:16:02
不,没有ajax参与(好问题,谢谢!) – 2010-06-21 21:00:28
这是否到处都有,或者仅仅在您的开发环境中? (我曾经历过类似的事情,但是我在运行Visual Studio网络服务器时遇到了问题)。 – Terje 2010-06-27 12:45:06