Вам действительно нужно перенаправить на другое действие? RedirectToAction
вызывает новый http-запрос, поэтому TempData работает. Не могли бы вы просто вызвать действие Result
напрямую, как это?
public ActionResult Index()
{
// Complex object structure created
Person person = new Person();
person.PhoneNumbers = new List();
person.PhoneNumbers.Add("12341324");
return Result(person);
}
Редактировать Если ваше приложение не выполняет больше, чем вы показали в вопросе, это не похоже на то, что вам действительно нужно действие Index. Вы можете переместить код, который создает нового человека, в приватный CreatePerson
метод. В вашем действии Result
, если person
равно нулю, вызовите метод CreatePerson
. Действие Index
можно полностью исключить, но для этого потребуется изменить маршруты. Или просто позвольте return RedirectToAction("Result", "Dialog");
быть единственной строкой кода в вашем Index
действии.
На самом деле, после разделения проблем MVC, этот CreatePerson
метод, вероятно, должен быть методом внутри кода вашей модели. Контроллер не должен содержать логику создания нового Person
. Это действительно принадлежит модели.