ASP.NET MVC AJAX.BEGINFORM REDIETING
-
12-09-2019 - |
Pergunta
Eu não acho que recebo as funções do Ajax no MVC, porque tenho esse problema mais estranho.
Recebi o código a seguir que faz minha chamada de Ajax, ele é colocado em uma visão parcial com uma lista de produtos:
<% 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" />
<% } %>
eu tenho um <div id="Basket"></div>
na minha página master
E esse método no BasketController, que retorna uma visão parcial encontrada em Basket/BasketList.ascx:
[HttpPost]
public ActionResult AddToBasket(int productID)
{
// DO STUFF
return PartialView("BasketList");
}
Quando estou conectado ao usar a associação padrão do ASP.NET, tudo funciona bem, ele atualiza a cesta e é tudo assíncrono, mas quando estou conectado e está clicando no AddToCart, ele me redireciona para Basket/AddToBasket? ProductId = 1 , que é uma visão parcial.
Alguém sabe por que isso acontece?
Eu tenho um problema semelhante com um ajax.actionlink
<%= Ajax.ActionLink("Gem", "SaveBasket", "Basket", new AjaxOptions { HttpMethod = "Post" })%>
onde diz "o recurso não pode ser encontrado". quando deve disparar, que é colocado no concurso de cesto
[HttpPost]
public void SaveBasket()
{
// DO STUFF
}
Solução
Parece que você tem um erro de JavaScript em algum lugar que está bloqueando o material do Ajax que deve estar acontecendo. Não posso dizer por que isso só aconteceria quando se saiu.
Você tem algum erro no console de erro/Firebug?
Outras dicas
Tem certeza de que todas as suas páginas estão incluindo as bibliotecas do Microsoft Ajax? E na ordem correta?