ASP.NET MVC缓存和IoS safari

时间:2016-01-09 15:15:05

标签: ios asp.net asp.net-mvc safari

我有一个像

这样的控制器
[OutputCache(Location = System.Web.UI.OutputCacheLocation.Any, VaryByParam = "category", Duration = 60)]
    public ActionResult Search(string keywords, string location, string category)
    {

// ...返回View等.. }

和此视图上的ajax请求

function refreshPager(pageNum, nextOper) {
    $.ajax({
        url: String.format("/Adv/GetPagesData?currentPage={0}&SortBy={1}&keywords={2}&location={3}&country={4}&category={5}&minPrice={6}&maxPrice={7}&type={8}&condition={9}", pageNum, $("#SortBy option:selected").text(), $("#keywords").val(), $("#id-location").val(), $("#Country option:selected").val(), $("#search-category option:selected").val(), $("#minPrice").val(), $("#maxPrice").val(), $("#ajaxTabs li[class='active']").attr("id"), $("#condition option:selected").val()),
        method: 'GET',
        datatype: 'json',
        data: { query: 'test' },
        success: function (pdata) {
            pagedata = pdata;
            maxPages = pdata.length;
            if (pageNum < 1) pageNum = 1;
            if (pageNum > maxPages) pageNum = maxPages;
            currentPage = pageNum;
            ko.mapping.fromJS(pagedata, {}, viewModel.PagedItems);
            $(".pageItem").removeClass("selectedItem");
            $(".pageItem:eq(" + pageNum + ")").addClass("selectedItem");

        }
    }).fail(function () { alert('Ошибка получения данных, попробуйте еще раз') }).success(function () {
        count = 0;
        $('.pager-btn').each(function (index, el) {

            if (el.innerHTML == pageNum) {
                $(el.parentNode).addClass("active");
                count++;
            }
        });
        if (count == 0) {
            $('#NotFound').show();
        } else {
            $('#NotFound').hide();
        }
        nextOper(currentPage);
    });
}

这在所有Windows浏览器中都很好用但在IoS Safari中失败了。 当缓存属性关闭时,它在Safari中也可以。 可能有人也遇到了这个问题吗?

1 个答案:

答案 0 :(得分:0)

以下将阻止所有未来的AJAX请求被缓存,无论您使用哪种jQuery方法($ .get,$ .ajax等)

$.ajaxSetup({ cache: false });

参考链接:https://stackoverflow.com/a/7750483/3041974