如何使用ASp.net MVC3插入数据库后显示"成功插入"等警报消息

use*_*007 16 c# asp.net entity-framework-4 asp.net-mvc-3

如何使用MVC编写用于显示警报消息的代码:"成功注册",用户数据存储在数据库中之后

我使用的是Asp.Net MVC3,C#,Entity Model.

Mik*_*ock 27

尝试使用TempData:

public ActionResult Create(FormCollection collection) {
  ...
  TempData["notice"] = "Successfully registered";
  return RedirectToAction("Index");
  ...
}
Run Code Online (Sandbox Code Playgroud)

然后,在索引视图或母版页等中,您可以执行以下操作:

<% if (TempData["notice"] != null) { %>
  <p><%= Html.Encode(TempData["notice"]) %></p>
<% } %>
Run Code Online (Sandbox Code Playgroud)

或者,在Razor视图中:

@if (TempData["notice"] != null) {
  <p>@TempData["notice"]</p>
}
Run Code Online (Sandbox Code Playgroud)

从MSDN引用(截至2014年页面已不存在,此处存档副本):

action方法可以在调用控制器的RedirectToAction方法调用下一个操作之前将数据存储在控制器的TempDataDictionary对象中.TempData属性值存储在会话状态中.在设置TempDataDictionary值之后调用的任何操作方法都可以从对象获取值,然后处理或显示它们.TempData的值一直存在,直到读取或会话超时为止.以这种方式保持TempData可以启用重定向等方案,因为TempData中的值可以在单个请求之外使用.


ipr*_*101 5

执行此操作的"最佳"方法是在更新成功后在视图对象上设置属性.然后,您可以在视图中访问此属性并相应地通知用户.

已经说过可以通过做这样的事情从控制器代码触发警报 -

public ActionResult ActionName(PostBackData postbackdata)
{
    //your DB code
    return new JavascriptResult { Script = "alert('Successfully registered');" };
}
Run Code Online (Sandbox Code Playgroud)

您可以在此问题中找到更多信息 - 如何使用MVC3控制器显示"消息框"