#asp.net-mvc #view #viewdata
#asp.net-mvc #Вид #viewdata
Вопрос:
Я работаю над своим первым приложением поверх MVC3 и все еще новичок в нем.
Проблема в том, что я помещаю какое-то сообщение в свой контроллер в словаре ViewData для отображения на странице просмотра, но, насколько я использую return View («Индекс»); сообщение получено в представлении правильно, но когда я меняю контроллер на возврат через RedirectToRoute («По умолчанию»).).. словарь ViewData[] отображает нулевое значение.
Я хочу использовать RedirectToRoute(«По умолчанию») для изменения URL-адреса .. Могу ли я каким-либо образом использовать ViewData[] с RedirectToRoute («По умолчанию»)?
public ActionResult Logout()
{
Session.Contents.Remove("usrnme");
Session.Contents.Remove("usrId");
ViewData["mainMessage"] = "Lorem Ipsum is simply dummy text of the printing and typesetting industry.";
//return View("Index");
return RedirectToRoute("Default");
}
Ответ №1:
Попробуйте
TempData["mainMessage"] = ....
и по умолчанию
if (TempData["mainMessage"] != null)
{
ViewData["mainMessage"] = TempData["mainMessage"];
}
Ответ №2:
Поскольку при этом действии не возвращается «view» (похоже, что ваш метод выхода из системы не работает на том контроллере, который обрабатывает маршрут «По умолчанию»), вы не можете назначить ему ViewData . Вместо этого установите ViewData в действие контроллера, который сопоставлен с маршрутом «По умолчанию».