この ASP.NET MVC アプリケーションのレイアウトは次のようになります (これはモバイル Web アプリです)。
- ページ 1は質問 1 です -> フォームを送信し、ページ 2 のビューを返します
- ページ 2は質問 2 です -> フォームを送信し、ページ 3 のビューを返します
- ページ 3は最後の質問です -> 送信して処理を完了します
フォームが送信されるたびに、次のページのビューが表示され、それに応じて送信されることを期待しています。しかし、実際に起こっているのはページ 1で送信ボタンを押すと、ページ 2 のビューが表示されますが、ページ 2でそのページで送信を押すと、ページ 1 のアクションが呼び出されます。 HttpPost
ページ 2 の送信がページ 1 の HttpPost
アクションを呼び出す原因は何ですか?
これが私がやっていることの基本的な考え方です:
public ActionResult Index()
{
return View();
}
[HttpPost]
public ActionResult Index(MyModel myModel)
{
return View("Page2", myModel);
}
[HttpPost]
public ActionResult Page2(MyModel myModel)
{
return View("Page3", myModel);
}
[HttpPost]
public ActionResult Page3(MyModel myModel)
{
if (ModelState.IsValid)
{
// do something and complete
}
return RedirectToAction("Index", "Home");
}
これは明らかに単純化されすぎていますが、アイデアを得る必要があります。のPage2
ビューは問題なくレンダリングされます。HttpPost
しかし、そのページで送信ボタンが押されると、すぐにof に戻りIndex()
ます。
何か案は?