ASP.NET MVC AJAX.Beginform -Umleitung
-
12-09-2019 - |
Frage
Ich glaube nicht, dass ich die AJAX -Funktionen in MVC ganz bekomme, weil ich dieses spannende Problem bekomme.
Ich habe den folgenden Code erhalten, der meinen Ajax -Anruf tätigt. Er wird in einer Teilansicht mit einer Produktliste gestellt:
<% using(Ajax.BeginForm("AddToBasket", "Basket",
new { productID = item.Id },
new AjaxOptions { HttpMethod = "Post", UpdateTargetId = "Basket", OnSuccess = "productAdded(" + item.Id + ")" })) { %>
<input type="image" src="/Content/addToCart.png" />
<% } %>
Ich habe ein <div id="Basket"></div>
Auf meiner Meisterseite
Und diese Methode in Baskontroller, die eine teilweise Ansicht zurückgibt, die in Basket/Basketlist.ascx gefunden wird:
[HttpPost]
public ActionResult AddToBasket(int productID)
{
// DO STUFF
return PartialView("BasketList");
}
Wenn ich die Standard -ASP.NET -Mitgliedschaft angemeldet habe, funktioniert alles einwandfrei, es aktualisiert den Korb und es ist alles asynchron. Wenn ich jedoch angemeldet bin und auf den AddToCart klickt, wird ich zu Korb/addTobasket umgeleitet? ProductID = 1 1 , was eine Teilansicht ist.
Weiß jemand, warum das passiert?
Ich habe ein ähnliches Problem mit einem Ajax.ActionLink
<%= Ajax.ActionLink("Gem", "SaveBasket", "Basket", new AjaxOptions { HttpMethod = "Post" })%>
Wo es heißt, "die Ressource kann nicht gefunden werden". Wenn es feuern sollte, der in den Basketontroller platziert ist
[HttpPost]
public void SaveBasket()
{
// DO STUFF
}
Lösung
Es hört sich so an, als hätten Sie irgendwo einen JavaScript -Fehler, der das Ajax -Zeug blockiert, das passieren sollte. Ich kann nicht sagen, warum das nur passieren würde, wenn sie ausgeloggt werden.
Haben Sie Fehler in der Fehlerkonsole/FireBug?
Andere Tipps
Sind Sie sicher, dass alle Ihre Seiten die Microsoft Ajax -Bibliotheken enthalten? Und in der richtigen Reihenfolge?