【发布时间】:2014-12-01 01:50:16
【问题描述】:
当用户将商品添加到购物车时,我正在尝试重新加载特定的“div”()。我有一些想要在点击事件上运行的 Jquery。它需要调用一个发布操作(它正在工作),然后在“重新加载”div 中重新加载所有内容(只有一个渲染操作)。
这个重新加载片段似乎也有效,但不仅重新加载 div,还重新加载当前页面的一部分。鉴于此,它一定是不正确的 jquery。对我做错的任何帮助将不胜感激。
我将尝试仅包含以下必要的代码:
在布局视图中加载局部视图:
<div id="reload">
@{Html.RenderAction("_PartialView","Controller");}
</div>
链接用户点击。 Jquery 监听的点击事件:
<p class="button">
<a href="#" class="AddToCart" data-id="@item.ItemId"> Add To Basket</a>
</p>
Jquery 在点击事件上调用的操作:
[ChildActionOnly]
public ActionResult _CartSummary()
{
var cart = ShoppingCart.GetCart(this.HttpContext);
ViewData["CartCount"] = cart.GetCount();
return PartialView("_CartSummary.cshtml");
}
点击事件调用JQuery:
$(function () {
$(".AddToCart").click(function () {
var addToCart = $(this).attr("data-id");
if (addToCart != '') {
$.post("/ShoppingCart/AddToCart", { "id": addToCart }).success(function() {
$("#cartSummary").fadeOut();
$("#cartSummary").fadeIn().load('@Url.Action("_CartSummary","ShoppingCart")');
});
return false;
};
});
});
调用上面的JQuery时,$("#cartSummary").fadeIn().load('@Url.Action("_CartSummary","ShoppingCart")')返回的url是localhost/Store/@Url.Action(%22_CartSummary%22,%22ShoppingCart%22。正如预期的那样,没有找到这个 url。正确的网址是localhost/ShoppingCart/_CartSummary。似乎@Url.Action 没有被处理,只是作为动作的名称传入。
【问题讨论】:
-
您应该提供
.done和.fail函数,例如:api.jquery.com/jquery.post 您在.done函数中填充div,因为那是.post返回的时间。
标签: jquery ajax asp.net-mvc