Jak naprawić akcje podrzędne Nie można wykonywać działań przekierowujących, inne odpowiedzi nie rozwiązują

Widok ASP.NET MVC2:

<%@ Page Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage<MvcMusicStore.ViewModels.PaymentViewModel>" %>

<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server">

    ...
    <form action="<%= Html.Action("PaymentByBankTransfer", "Checkout") %>" >
    <input type="submit" value="Payment by bank transfer" />
    </form>

CheckoutController:

    public ActionResult PaymentByBankTransfer()
    {
        var order = Session["Order"] as Order;
        ExecCommand(@"update dok set confirmed=true where order={0}", order.OrderId);
        return CheckoutCompleteOK();

        var cart = ShoppingCart.GetCart(HttpContext);
        cart.EmptyCart();
        // https://stackoverflow.com/questions/1538523/how-to-get-an-asp-net-mvc-ajax-response-to-redirect-to-new-page-instead-of-inser?lq=1
        return JavaScript("window.location = '/Checkout/CompleteOK'");
    }

    // common method called from other controller methods also
    public ActionResult CheckoutCompleteOK()
    {
        var cart = ShoppingCart.GetCart(HttpContext);
        cart.EmptyCart();
        // prevent duplicate submit if user presses F5
        return RedirectToAction("Complete");
    }

   public ActionResult Complete()
    {
        var order = Session["Order"] as Order;
        SendConfirmation(order);
        return View("PaymentComplete", order);
     }

naciśnięcie przycisku przesyłania formularza powoduje wyjątek

Child actions are not allowed to perform redirect actions

Ponieważ kod pokazuje najbardziej upvoted odpowiedź z

Jak uzyskać odpowiedź Ajax ASP.NET MVC do przekierowania do nowej strony zamiast wstawiania widoku do UpdateTargetId?

próbuje go naprawić, ale powoduje to inny błąd: przeglądarka próbuje otworzyć adres URLwindow.location = '/Checkout/CompleteOK'

Jak naprawić ten wyjątek? Wszystko wygląda dobrze, nie ma częściowych widoków opisanych w innych odpowiedziach. Próbowałem użyć atrybutu method = 'post' w formularzu, ale problem nadal występuje.

questionAnswers(2)

yourAnswerToTheQuestion