0

私が作成している Web サイトのすべてのページからサインインできます。他のフォームを含むページでは、送信後に次のエラーが表示されます:「子アクションはリダイレクト アクションを実行できません。」サインインを追加するまで、すべてのフォームは正常に機能しました。さらに、サインインを使用すると正しく機能します。エラーは、別のフォームを送信した場合にのみ表示されます。ブレークポイントを設定し、他の送信をヒットしたときに何が起こるかを見てきました。何らかの理由で、SignIn Post ActionResult が実行されようとしています。どんな助けでも大歓迎です。

エラー:

子アクションはリダイレクト アクションを実行できません。67 行目: @{Html.RenderAction("SignIn", "Account");}

サインイン ビュー

@using (Html.BeginForm("SignIn", "Account", FormMethod.Post))
{
    <input class="signInSubmit" type="submit" name="submitButton" value="" />
}

ビュー内の別のフォーム

@using (Html.BeginForm("Confirm", "Cart", null, FormMethod.Post, new { @id = "productDetailsForm" }))
{
    <input class="addToCart" type="submit" name="submit" value="" />
}

サインイン コントローラー

// GET: /Account/SignIn
public ActionResult SignIn()
{
    return PartialView();
}

// POST: /Account/SignIn
[HttpPost]
public ActionResult SignIn(Customer customer)
{
    try
    {
        //Stuff is here
        return RedirectToAction("Index", "Home");
    }
    catch
    {
        return RedirectToAction("Registration");
    }
}

その他のフォーム コントローラー

// GET: /Cart/
public ActionResult Index()
{
  CartViewModel cart = getCart();
  return View(cart);
}

//POST: Cart/Confirm
[HttpPost]
public ActionResult Confirm(int productID, bool certs, int quantity)
{
  CartItemViewModel viewModel = new CartItemViewModel
  {
    Item = productRep.GetProductByID(productID),
    Certs = certs,
    Quantity = quantity
  };
  return View(viewModel);
}

HTML ソース コード

<form action="/Account/SignIn" method="post">
    <input class="signInSubmit" type="submit" value="" />
</form>
<form action="/Cart/Confirm" id="productDetailsForm" method="post">
    <input class="addToCart" type="submit" value="" />
</form>
4

1 に答える 1

0

私の解決策

POST ActionResult の名前を SignIn 以外に変更しました。これが機能する理由を誰かが理解していますか?

アカウントコントローラー

// POST: /Account/Signed
[HttpPost]
public ActionResult Signed(Customer customer)
{
    try
    {
        //Stuff is here
        return RedirectToAction("Index", "Home");
    }
    catch
    {
        return RedirectToAction("Registration");
    }
}
于 2012-10-04T19:06:36.403 に答える