我正在研究MVC3项目,我想在视图中使用RedirectToAction时显示一条消息。 我使用过ViewBag,但它没有用。
请有人帮助我。
答案 0 :(得分:37)
您可以使用TempData显示消息
在您的视图中
@if (TempData["Success"] != null)
{
<p class="alert alert-success" id="successMessage">@TempData["Success"]</p>
}
成功后在你的控制器中
TempData["Success"] = "Added Successfully!";
return RedirectToAction("actionname", "controllername");
答案 1 :(得分:9)
TempData
控制器属性可用于实现此类功能。它的缺点是它在后台使用会话存储。这意味着您将有额外的工作使其在Web场上运行,或者您需要首先打开会话。
如果您只需要传输短信,也可以使用Cookie。这样做需要您正确保护cookie以防止篡改。 MachineKey.Protect()
可以帮助您做到这一点。
我遇到了您遇到的同样问题,并为其创建了一个名为 FlashMessage 的解决方案。也许这可以为你节省一些工作。它也可以在NuGet上找到。
使用 FlashMessage 非常简单。您只需在调用RedirectToAction()
之前对消息进行排队,如下所示:
// User successfully logged in
FlashMessage.Confirmation("You have been logged in as: {0}", user.Name);
return RedirectToLocal(returnUrl);
在您的视图中,您包含以下语句以呈现任何以前排队的消息:
@Html.RenderFlashMessages()