ViewData ["ключ"] недоступен при использовании RedirectToRoute ("Route") в контроллере - PullRequest
1 голос
/ 13 октября 2011

Я работаю над своим первым приложением над MVC3 и все еще в нем новичок.
Проблема в том, что я помещаю какое-то сообщение в моем контроллере в словарь ViewData, чтобы оно отображалось на странице просмотра, но насколько я использую return View ("Index"); сообщение принимается в поле зрения правильно, но когда я изменяю контроллер для возврата через 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");
    }

Ответы [ 2 ]

2 голосов
/ 13 октября 2011

Попробуйте

TempData["mainMessage"] = ....

и по умолчанию

if (TempData["mainMessage"] != null) 
{    
    ViewData["mainMessage"] = TempData["mainMessage"];
}
0 голосов
/ 13 октября 2011

Поскольку в этом действии не возвращается «представление» (похоже, ваш метод выхода не находится на том, какой контроллер обрабатывает маршрут «По умолчанию»), вы не можете назначить ему ViewData.Вместо этого установите ViewData в действии контроллера, который сопоставлен с маршрутом «по умолчанию».

...