Problembehebung Untergeordnete Aktionen dürfen keine Umleitungsaktionen ausführen, andere Antworten können nicht behoben werden
ASP.NET MVC2-Ansicht:
<%@ 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);
}
Das Drücken der Schaltfläche zum Senden des Formulars führt zu einer Ausnahme
Child actions are not allowed to perform redirect actions
Als Code zeigt sich die am meisten upvoted Antwort von
wird versucht, das Problem zu beheben, dies verursacht jedoch einen anderen Fehler: Der Browser versucht, die URL zu öffnenwindow.location = '/Checkout/CompleteOK'
Wie behebe ich diese Ausnahme? Alles sieht in Ordnung aus, es gibt keine Teilansichten wie in anderen Antworten beschrieben. Ich habe auch versucht, das Attribut method = 'post' in der Form zu verwenden, aber das Problem besteht weiterhin.