C# 从动作到动作再到布局

C# 从动作到动作再到布局,c#,asp.net-mvc,c#-4.0,asp.net-mvc-4,C#,Asp.net Mvc,C# 4.0,Asp.net Mvc 4,我有一个布局页面,可以向用户显示简单的消息 我有一个带有索引操作/视图的人员控制器,该索引操作/视图显示人员列表,我有一个针对人员的编辑操作/视图 当用户成功更新并保存某人的详细信息时,我想从编辑操作重定向到索引页,但会显示一条消息,如“此人已成功更新” 我尝试过向ViewBag中添加内容,但没有持续。 我有一个ViewModel基类,但不知道是否/如何通过编辑操作设置索引的ViewModel 如果消息从不同的位置传递到_Layout中使用,如何实现这一点?您可以使用TempData来实现这一点

我有一个布局页面,可以向用户显示简单的消息

我有一个带有索引操作/视图的人员控制器,该索引操作/视图显示人员列表,我有一个针对人员的编辑操作/视图

当用户成功更新并保存某人的详细信息时,我想从编辑操作重定向到索引页,但会显示一条消息,如“此人已成功更新”

我尝试过向ViewBag中添加内容,但没有持续。 我有一个ViewModel基类,但不知道是否/如何通过编辑操作设置索引的ViewModel


如果消息从不同的位置传递到_Layout中使用,如何实现这一点?

您可以使用
TempData
来实现这一点。TempData中存储的值只会在一个Http请求中保持不变,因此非常适合存储这些类型的消息

编辑后期操作

[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
}
@if(TempData[“message”!=null)
{
@TempData[“message”]

//显示消息 }

您可以使用TempData和ViewData(控制器扩展等)构建一个完整的通知系统,但这是最简单的方法。

若要重定向到索引,请使用“return RedirectToAction(“Index”);但您希望消息如何显示?它是在重定向之前还是之后弹出?您可以使用会话在控制器/操作之间传递消息。此外,您应该限制会话,您可以使用字典收集消息或信息,然后将其保存到会话。我希望消息在重定向后显示。也就是说,与索引视图一起,但消息来自编辑操作。您可以将其保存在会话中,通过索引操作,检查会话是否为空,此时您可以在ViewBag中设置消息。我还应该补充一点,重定向不是问题,我可以通过在重定向时向URL添加参数来实现,“但我宁愿不这样做。”吉安索内特,你是什么意思?在执行索引操作时,如何从编辑操作中获取要使用的内容?我尝试过在编辑中使用ViewBag,但重定向后它不在那里。