我在ASP.NET MVC2电子商务网站上有购物车文本更新问题。当用户想要添加项目时,用户控件弹出窗口允许他们选择某些选项,然后单击“添加到购物车”。
$(document).ready(function () {
$('#sizeselectform :radio:first').attr('checked', 'checked');
$('#sizeselectform').ajaxForm(function () {
$('#sizeselectform').parents('div.popup').children('a.close').click();
UpdateCartCount();
});
});
UpdateCartCount函数只更新购物车中的商品数量:
function UpdateCartCount() {
$.ajax({
type: "GET",
url: "/ShoppingCart/GetCartItemsCount/",
success: function (result, status, xmlHttpRequest) {
$('#cartItemCount').text(result);
},
error: function (xmlHttpRequest, status, e) {
var errorMessage = 'Login: ' + xmlHttpRequest.status + ' - ' + xmlHttpRequest.statusText;
$('#loginErrorMessage').html(errorMessage).show();
},
complete: function (xmlHttpRequest, status) {
}
});
}
除IE7外,Chrome,Firefox等一切正常。我怀疑在IE7中没有更新购物车计数,因为在调用UpdateCartCount()函数之前父div已关闭,但此时我不确定。有什么建议吗?
谢谢,
修改
我将调用更改为POST,添加了缓存:'false',content-type:'application / text',最后是URL的随机数,以防止缓存(所有建议的IE问题解决方案) 。并且ajax调用终于开始在IE中工作了。
答案 0 :(得分:0)
如果在此过程中不会删除div#cartItemCount,则不会出现任何问题 您是否检查过IE7中是否触发了ajax调用? 您可以在IE7模式下使用IE8以便于调试或在代码中添加一些警告()来检查带有$ ajax的UpdateCartCount()是否真的被调用
答案 1 :(得分:0)
我建议在成功回调中检查result
的值。也许你必须为你的ajax请求指定dataType: 'text'
。我认为它是文本,而不是HTML或Json。
答案 2 :(得分:0)
我将调用更改为POST,添加了缓存:'false',content-type:'application / text',最后是URL的随机数,以防止缓存(所有建议的IE问题解决方案) 。并且ajax调用终于开始在IE中工作了。