使用 RedirectToAction 时如何在视图中显示成功消息

How to show success message in view when RedirectToAction used

我正在处理 MVC3 项目,我想在视图中使用 RedirectToAction 时显示一条消息。 我用过 ViewBag,但它不起作用。

请任何人帮助我。

您可以使用 TempData 来显示消息

在您看来

@if (TempData["Success"] != null)
{
 <p class="alert alert-success" id="successMessage">@TempData["Success"]</p>
}

成功后在您的控制器中

TempData["Success"] = "Added Successfully!";
return RedirectToAction("actionname", "controllername");

TempData控制器属性可以用来实现这种功能。它的缺点是它在后台使用会话存储。这意味着您需要额外的工作才能让它在网络场上运行,或者您需要首先打开会话。

或者,如果您只需要传输一条短消息,您也可以使用 cookie。这样做确实需要您妥善保护 cookie 以防止篡改。 MachineKey.Protect() 可以帮助您做到这一点。

我遇到了与您相同的问题,并为此创建了一个名为 FlashMessage. Perhaps this could save you some work. It's available on NuGet 的解决方案。

使用 FlashMessage 很简单。您只需按如下方式在调用 RedirectToAction() 之前将消息排队:

// User successfully logged in
FlashMessage.Confirmation("You have been logged in as: {0}", user.Name);
return RedirectToLocal(returnUrl);

在您看来,您包含以下语句来呈现任何先前排队的消息:

@Html.RenderFlashMessages()