Как показать сообщение об успешном запуске при использовании 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()