Пока я использую MVC Framework для перенаправления, я использую:
return this.RedirectToAction("ActionName");
Однако недавно я «обнаружил», что могу вызывать Action из другого Action напрямую, например:
return this.ActionMethod();
По моему мнению. Вызов действия гораздо лучше, чем перенаправление на действие, потому что он более читабелен (по крайней мере, для меня), и сложные объекты могут передаваться с параметром без необходимости использования Viewbag или подобного контейнера данных.
Теоретически, действия из других контроллеров также могут быть вызваны, если я создаю новый экземпляр его контроллера перед вызовом.
Я не видел, чтобы кто-то перенаправлял таким образом, поэтому я спрашиваю.
Является ли это по какой-то причине ужасно неправильным подходом или это безопасно перенаправить таким образом?
Редактировать
Позволяет иметь
public class Controller
{
public ActionResult Action1()
{
if()
{
return this.RedirectToAction("Action2");
}
else
{
return this.Action2();
}
}
public ActionResult Action2()
{
return this.view()
}
}
Насколько я понимаю, оба кода в If / Else будут возвращать один и тот же HTML-код, или я ошибаюсь?