Как показать сообщение об успешном запуске при использовании RedirectToAction
Я работаю над проектом MVC3, и я хочу показать сообщение, когда я использую RedirectToAction. Я использовал ViewBag, но он не работает.
Пожалуйста, помогите мне.
Ответы
Ответ 1
вы можете использовать TempData для отображения сообщения
в вашем представлении
@if (TempData["Success"] != null)
{
<p class="alert alert-success" id="successMessage">@TempData["Success"]</p>
}
и в вашем контроллере после успеха
TempData["Success"] = "Added Successfully!";
return RedirectToAction("actionname", "controllername");
Ответ 2
TempData
контроллера TempData
можно использовать для достижения такой функциональности. Недостатком является то, что он использует хранилище сеансов в фоновом режиме. Это означает, что у вас будет дополнительная работа, чтобы заставить ее функционировать на веб-ферме или вам необходимо включить сеансы в первую очередь.
В качестве альтернативы вы можете использовать файлы 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()