在ASP.NET MVC中跨操作共享Viewdata

时间:2009-11-24 11:04:12

标签: asp.net-mvc

在mu MVC应用程序页面中,我有一个产品页面(Controller:ProductController,Action:Index),它列出了DB中的所有产品。现在我有一个“添加产品”链接,它提供了一个表格来填写产品详细信息。在调用提交的AddProduct操作时,会调用StoredProcedure(在我的模型类中建模)。在成功添加时,我使用RedirectAction(“Index”)。现在我的StoredProcedure返回一条消息,指示添加的结果。我希望此消息存储在ViewData中并在Index页面上显示。我怎样才能做到这一点?任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:8)

使用TempData代替ViewData

public ActionResult Index() 
{
    ViewData["message"] = TempData["message"];
    return View();
}

public ActionResult AddProduct()
{
    TempData["message"] = "product created";
    return RedirectToAction("Index");
}

在索引视图中:

<% if (ViewData["message"] != null) { %>
    <div><%= Html.Encode((string)ViewData["message"]) %></div>
<% } %>