我的Silverlight4应用程序托管在ASP.NET MVC 2 Web应用程序中。我通过HttpWebRequest类执行Web请求,但它返回先前缓存的结果。如何禁用此缓存行为?有一些链接在.NET中讨论HttpWebRequest,但Silverlight HttpWebrequest是不同的。有人建议在每个Web请求上添加唯一的虚拟查询字符串,但我更喜欢更优雅的解决方案。我也试过以下,但它不起作用:
_myHttpWebRequest.BeginGetRequestStream(new AsyncCallback(BeginRequest), new Guid());
实际上,通过设置浏览器历史记录设置,可以禁用缓存。请参阅以下链接: ASP.NET MVC with SQL Server backend returns old data when query is executed 但要求用户更改浏览器设置不是我的选择。
答案 0 :(得分:2)
管理缓存的正确方法是调整服务器端,以便发送影响缓存的HTTP标头的正确值。
例如,在ASP.NET中,您可以使用CacheControl
对象
Response
属性
Response.CacheControl = HttpCacheability.NoCache;
答案 1 :(得分:1)
好的,我在以下链接中找到了更正确的答案: