asp.net mvc ajax.BeginForm Rediriger
-
12-09-2019 - |
Question
Je ne pense pas que je reçois tout à fait les fonctions Ajax dans mvc, parce que je reçois ce problème wierd.
Je suis le code suivant qui rend mon appel ajax, il est placé dans une vue partielle avec un ProductList:
<% 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" />
<% } %>
J'ai un <div id="Basket"></div>
sur mon masterpage
Et cette méthode dans BasketController, qui renvoie une vue partielle qui se trouve dans Basket / BasketList.ascx:
[HttpPost]
public ActionResult AddToBasket(int productID)
{
// DO STUFF
return PartialView("BasketList");
}
Quand je suis connecté à l'aide des membres de asp.net par défaut tout fonctionne bien, il met à jour le panier et il est tout async, mais quand je suis déconnecté et est en cliquant sur le addToCart, il me redirige au panier / AddToBasket? productID = 1, qui est une vue partielle.
Quelqu'un sait pourquoi cela se produit?
J'ai un problème similaire avec un Ajax.ActionLink
<%= Ajax.ActionLink("Gem", "SaveBasket", "Basket", new AjaxOptions { HttpMethod = "Post" })%>
où il est dit « La ressource ne peut pas être trouvé. » quand il doit tirer, qui est placé dans la BasketController
[HttpPost]
public void SaveBasket()
{
// DO STUFF
}
La solution
Il semble que vous avez une erreur javascript quelque part qui bloque les choses AJAX qui devrait se produire. Ne peut pas dire pourquoi cela ne se produira que lorsque vous êtes connecté à bien.
Avez-vous des erreurs dans la console d'erreur / Firebug?
Autres conseils
Êtes-vous sûr de toutes vos pages incluez les bibliothèques Microsoft Ajax? Et dans le bon ordre?