使用 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()
我正在处理 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()