RedirectToAction между областями?

Есть ли способ перенаправить на конкретное действие / контроллер в другой области?

4 ответа

Решение

Вы пробовали это?

return RedirectToAction("action", "controller", new { area = "area" });

Ваш ответ был полезен для меня. Просто хотел добавить ниже:

Если вы хотите перенаправить из одной области в другую, приведенный выше код работает хорошо.

И, если вы хотите перенаправить из одной области к контроллеру / представлению, которого нет в папке области (то есть, в большинстве случаев, в вашем интерфейсе), вы можете указать area = "".

т.е.

return RedirectToAction("action", "controller", new { area = "" });

Я хотел бы попросить продолжение здесь. Понимание того, что

return RedirectToAction("action", "area1/controller")

Также представлен

return RedirectToAction("action", "controller", new { area = "area1" });

Как можно углубиться в дальнейшие вложения области, используя те же обозначения? Большим преимуществом наличия соответствующих обозначений является то, что, в частности, с reSharper, рефакторинг обрабатывается надлежащим образом, если вам когда-либо понадобится вернуться и "переименовать" любой из контроллеров. Как только я добавляю дополнительную область к соединению и размещаю их друг в друге, предыдущая запись не эквивалентна.

return RedirectToAction("action", "area1/area2/controller");

Я буду держать вопрос в курсе, если найду его первым.


Хорошо, поэтому я считаю, что ответ не является чем-то впечатляющим, но лучший способ сделать это, так что вы по-прежнему получаете какую-то действительную окраску с resharper & intellisense, выглядит следующим образом:

return RedirectToAction("action","controller", new { area = "area1/area2" });

По крайней мере, здесь у вас будет возможность F12 или Ctrl+ клик на контроллере, и вы будете перенаправлены на него, и если вам нужно будет переименовать его, Resharper найдет его... но он не будет вносить никаких изменений в определенные области... так что выбирай свои сражения.

В большинстве случаев я могу полностью избежать перенаправлений... но иногда ты должен делать то, что должен.

Попробуй это

      return RedirectToAction("ActionName", "AreaName/ControllerName");
Другие вопросы по тегам