首页 新闻 会员 周边

MVC3 ajax返回局部视图时IE9缓存问题

0
悬赏园豆:50 [已解决问题] 解决于 2012-07-04 09:13
<script type="text/javascript">
//用于编辑后更新页面
function reloadProduct(page) {
$.get("/Admin/Product?page=" + page, "", function (response) {
alert(response);
$("#productList").html(response);
});
}

//省略。。。。

$.ajax({
type: 'post',
url: '/Admin/Edit',
data: productJson,
success: function (json) {
$("#product_window").dialog("close");
if (json.result != "false") {

reloadProduct(json.result); //重新刷新页面
alert('恭喜你,修改成功!');

} else {
alert('抱歉,修改失败!');
}
}
});

</script>

控制器:

public ActionResult Product(int? page, GridSortOptions sort, string nameKey, string supplierKey)
{
using (var db = new MAH2OEntities())
{
IQueryable<TProduct> tmpProducts = db.TProduct;

//查询
if (!string.IsNullOrEmpty(nameKey))
{
tmpProducts = tmpProducts.Where(p => p.Name.ToUpper().Contains(nameKey.ToUpper()));
}
if (!string.IsNullOrEmpty(supplierKey))
{
tmpProducts = tmpProducts.Where(p => p.Supplier.ToUpper().Contains(supplierKey.ToUpper()));
}

//排序
ViewBag.sort = sort;
if (sort.Column == null)
{
sort.Column = "ID"; //默认排序
}
tmpProducts = tmpProducts.OrderBy(sort.Column, sort.Direction);

//分页
PagedList<TProduct> resultProducts = tmpProducts.ToPagedList(page ?? 1, PAGESIZE);
if (Request.IsAjaxRequest())
{
return PartialView("ProductList", resultProducts);
}
return View(resultProducts);
}
}

 IE7、IE8、谷歌浏览器可以正常更新页面,而IE9第一次可以正常更新,第二次以后更新页面都不会局部刷新。

何以笙箫的主页 何以笙箫 | 初学一级 | 园豆:41
提问于:2012-07-03 22:56
< >
分享
最佳答案
1

$.ajax有个cache参数,默认是ture,设置为false试试。

$.ajax({
cache:false
});
收获园豆:25
dudu | 高人七级 |园豆:31003 | 2012-07-04 08:48

又一次看到老大回答我的问题,太感谢了~老大的这种方法也可以~~

何以笙箫 | 园豆:41 (初学一级) | 2012-07-04 09:12
cache:false,这是实质上是不是Jquery的Ajax内部也是加上了一个随机数参数呢?
根据在EXT 中的Ajax 和动态加载js,貌似都是加了随机参数!

=========请指教====谢谢
Angkor--:-- | 园豆:1086 (小虾三级) | 2012-07-04 11:09
其他回答(2)
1
$.get("/Admin/Product?page=" + page, "", function (response) ..........
请求的url后面再加一个参数(随机数吧),处理页面忽略这个随机数参数就可以了!!
收获园豆:25
Angkor--:-- | 园豆:1086 (小虾三级) | 2012-07-04 00:04

谢谢,这种方法可以~

支持(0) 反对(0) 何以笙箫 | 园豆:41 (初学一级) | 2012-07-04 09:11
0

直接用post请求,get会缓存

zyngdbwh | 园豆:204 (菜鸟二级) | 2013-06-13 15:08
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册