2

我有一个 mvc 3 razor 项目,在 pc 上运行得很好 Ipad 上有一个问题我有一个 artikel 列表和一个添加的测试按钮然后我按下添加的按钮它现在返回日期时间然后我按下添加的按钮它是返回一个日期时间,然后我第二次按下它是返回相同的日期时间,我在 Ipad 上的项目是从缓存中获取值我想,每个人都可以帮助我吗???这个jQuery代码:

$(document).ready(function (){        
    $(".AddButton").live("click", function(){                
        var buttonId = $(this).attr("id");                
        var id = buttonId.substr(buttonId.indexOf("_"));
        $.ajax({                
            type:'POST',
            dataType:'json',                
            url: "@Url.Action("AddCommandArtikelJson","Home")",
            data: {id:$("#Id"+id).val(), id_priceOnPad: $(this).attr("name")},
            cache: false,
            success: function(result){            
                $("#commandsCount").text(result);
            }
        });

    });
});

这个控制器功能:

 [HttpPost]
    public JsonResult AddCommandArtikelJson(int id, int id_priceOnPad)
    {//my code
         return Json(DateTime.Now);
    }
4

2 回答 2

4

在这种情况下,一个常见的技巧是在查询字符串中传递一个随机字符串,这会欺骗浏览器认为请求是不同的,因此您绕过缓存。

于 2012-10-22T07:40:48.607 回答
3

当我工作的 .NET 站点缓存 Web 服务请求到影响我的站点功能的程度时,我遇到了同样的问题。这似乎是 iOS6 中的一个共同特征。

这篇 StackOverflow 帖子应该对您有所帮助:iOS 6 上的 Safari 是否缓存 $.ajax 结果?

我已经写了一些关于我在这个问题上的经验的简介:http ://www.isurinder.com/blog/post/2012/09/24/iOS-Safari-Browser-Has-A-Massive-Caching-Issue!.aspx

通过将完整的时间戳传递给您的服务应该可以解决您的问题。

于 2012-10-22T07:48:28.060 回答