0

この ASP.NET MVC アプリケーションのレイアウトは次のようになります (これはモバイル Web アプリです)。

  1. ページ 1は質問 1 です -> フォームを送信し、ページ 2 のビューを返します
  2. ページ 2は質問 2 です -> フォームを送信し、ページ 3 のビューを返します
  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()ます。

何か案は?

4

1 に答える 1