В ASP.NET MVC у меня есть контроллер, который выглядит примерно так:
public class MyController{
public ActionResult Index(){
return View(new MyModel());
}
[HttpPost]
public ActionResult Index(MyModel model){
//do something
return View("RegistrationConfirmation", new ConfirmModel());
}
[HttpPost]
public ActionResult RegistrationConfirmation(ConfirmModel model){
//do something else
return View();
}
}
Рабочий процесс пользователя, который я хотел бы иметь, следующий
GET
индекс страницы. Возвращает представление Index
. URL: ~/My
POST
данные со страницы индекса - возвращает представление RegistrationConfirmation
и отправляет пользователя на нужную страницу ~/My/RegistrationConfirmation
.
- Пользователь
POST
хранит другие данные на странице RegistrationConfirmation
, поэтому для их обработки вызывается RegistrationConfirmation
.
Прямо сейчас метод действия RegistrationConfirmation
никогда не вызывается, потому что после возврата RegistrationConfirmation
представления по методу индекса действия URL остается ~/My
, поэтому второе сообщение обрабатывается Index(MyModel)
методом действия, а не RegistrationConfirmation(ConfirmModel)
методом действия.
Как я могу изменить URL-адрес вместе с отправкой представления, чтобы действие контроллера, соответствующее представлению, вызывалось обратно POST
? Или есть какой-то другой способ, как гарантировать, что соответствующий контроллер вызывается?
ПРИМЕЧАНИЕ: Я действительно прочитал более 20 вопросов, которые, казалось, были по теме, прежде чем опубликовать этот. Я не думаю, что идеальный ответ на любой из них даст мне решение. Пожалуйста, прочитайте правильно перед голосованием, чтобы закрыть как дубликат.