我认为我不太了解 mvc 中的 Ajax 函数,因为我遇到了这个奇怪的问题。
我得到了以下代码,它使我的 ajax 调用,它被放置在带有 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" />
<% } %>
<div id="Basket"></div>
我的主页上有一个
BasketController 中的此方法返回在 Basket/BasketList.ascx 中找到的部分视图:
[HttpPost]
public ActionResult AddToBasket(int productID)
{
// DO STUFF
return PartialView("BasketList");
}
当我使用默认的 asp.net 成员身份登录时,它一切正常,它会更新购物篮并且它都是异步的,但是当我注销并单击 addToCart 时,它会将我重定向到 Basket/AddToBasket?productID=1 ,这是部分视图。
有谁知道为什么会这样?
我对 ajax.actionlink 有类似的问题
<%= Ajax.ActionLink("Gem", "SaveBasket", "Basket", new AjaxOptions { HttpMethod = "Post" })%>
它说“找不到资源”。当它应该触发时,它被放置在 BasketController 中
[HttpPost]
public void SaveBasket()
{
// DO STUFF
}