当用户在我的网站上做这样的事情时,我TempDate["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 应该用于其他情况。
问题是:消息通常不会立即显示。有时需要单击或两次单击站点的不同部分才能显示消息。这很奇怪。
有任何想法吗?