我有這樣的:爲什麼我的ajax文章不能取代內容?
<div id="miniShoppingCartContainer">
@Html.Action("MiniShoppingCart", "ShoppingCart")
</div>
其中MiniShoppingCart動作返回MiniShoppingCart.cshtml局部視圖的所有內容。
在這個局部視圖我增加了一個Ajax調用增加產品車的數量:
@using (Ajax.BeginForm("IncreaseProductQuantity", "ShoppingCart", new { shoppingCartItemId = item.Id }, new AjaxOptions { UpdateTargetId = "miniShoppingCartContainer", InsertionMode = InsertionMode.Replace }))
{
<li>
<input type="submit" class="btn-up" />
</li>
}
它調用的方法:
public ActionResult IncreaseProductQuantity(int shoppingCartItemId)
{
//get shopping cart item
var cart = _workContext.CurrentCustomer.ShoppingCartItems
.Where(x => x.ShoppingCartType == ShoppingCartType.ShoppingCart).ToList();
var sci = cart.Where(x => x.Id == shoppingCartItemId).FirstOrDefault();
if (sci == null)
{
return RedirectToRoute("ShoppingCart");
}
//update the cart item
_shoppingCartService.UpdateShoppingCartItem(_workContext.CurrentCustomer,
sci.Id, sci.Quantity + 1, true);
return MiniShoppingCart();
}
請注意,在方法結束時,我致電MiniShoppingCart ActionResult準備購物車並返回PartialView(如您在帖子開頭處看到的那樣)。
好,產品的更新正在發生細微但內容不刷新(或更換)...
能否請你指出我在哪裏錯了?
UPDATE:
否則與Chrome開發了檢查。工具我覺得那樣做時,後一個錯誤:
POST http://localhost/ShoppingCart/IncreaseProductQuantity?shoppingCartItemId=11 500 (Internal Server Error)
f.support.ajax.f.ajaxTransport.sendjquery-1.7.1.min.js:4
f.extend.ajaxjquery-1.7.1.min.js:4
ejquery.unobtrusive-ajax.min.js:5
(anonymous function)jquery.unobtrusive-ajax.min.js:5
f.event.dispatchjquery-1.7.1.min.js:3
f.event.add.h.handle.ijquery-1.7.1.min.js:3
2
很奇怪猜測是該日誌的問題...基本上,如果我讓調試我可以看到它所有的操作,直到MiniShoppingCart()
方法return PartialView(model);
...
你有沒有包含在不顯眼的AJAX JS文件''在你的視圖/佈局? – nemesv 2012-03-03 09:27:35
是的,我有這個包括:'' – 2012-03-03 09:30:52
您應該檢查在瀏覽器的開發控制檯(IE/Chrome F12)或FireBug中,「IncreaseProductQuantity」正在返回。也許你會看到提示什麼不起作用。 – nemesv 2012-03-03 09:42:59