2009-05-28 2 views
5

Я создал базовый контроллер, который переопределяет инициализацию и устанавливает cookie и сохраняет некоторые данные в БД. Здесь также нужно проверить, установлен ли файл cookie и не перенаправлен ли он на страницу с ошибкой.Перенаправление ASP.NET в базовый контроллер

Пользователи этого сайта приходят из магазина на другом сайте, который передает мне идентификатор магазина, и я установил его в файл cookie. Мне нужно убедиться, что идентификатор сохранен и если не передать их ошибке или вернуться к выбору магазина.

У меня возникли проблемы с перенаправлением или отображением этой ошибки в базовом контроллере. Я даже попробовал конструктор контроллера. Ниже приведен код, который я пытаюсь инициализировать переопределить, но ControllerContext имеет значение null в этот момент?

 if (StoreID == null) 
     { 
      View("StoreError").ExecuteResult(ControllerContext); 
      return; 
     } 
+0

Очень ясное объяснение от @Darin: http://stackoverflow.com/questions/4793452/mvc-redirect-inside-the-constructor –

ответ

6

следующий же трюк ...

requestContext.HttpContext.Response.Redirect("/home/storeError"); 
2

правильный путь я думаю, что было бы

Return RedirectToAction("StoreError","Home"); 

нет?

4

Я бы рекомендовал создать действие, которое проверит Cookie в методе OnActionExecuting и перенаправит его на правильный метод действия.

Ясно Объяснение: MVC - Redirect inside the Constructor

Смежные вопросы