我有一个布局页面,向用户显示简单的消息。
我有一个带有索引操作/视图的人员控制器,显示人员列表,我有一个人的编辑操作/视图。
当用户成功更新并保存某人的详细信息时,我想从“编辑”操作重定向到“索引”页面,但会显示“此人已成功更新”等消息。
我已尝试向ViewBag添加内容,但它不会持续存在。 我有一个ViewModel Base类,但不知道是否/如何从Edit操作设置Index的ViewModel。
如何在_Layout中使用的各个地方传递消息?
答案 0 :(得分:2)
您可以使用TempData
来完成此操作。存储在TempData中的值只会在一个Http请求中保留,因此非常适合存储这些类型的消息。
编辑POST操作
[HttpPost]
public ActionResult Edit(EditPersonModel model)
{
// .. Your code to edit the person ..
TempData["message"] = "The person has been updated.";
return RedirectToAction("Index", "People");
}
您的观点
@if (TempData["message"] != null)
{
<p>@TempData["message"]</p> // Displays the message
}
您可以构建一个使用TempData和ViewData(控制器扩展等)的整个通知系统,但这是最简单的方法。