如何从Windows手机列表框中清除json缓存?

时间:2014-05-30 13:18:42

标签: c# wpf json caching windows-phone-8

我正在开发一个Windows Phone 8项目,我正试图用json缓存来解决这个问题。我的项目中有2个xaml页面:第1页包含不同的足球联赛(超链接),第2页显示在第1页中选择的联赛的相关信息。 我的c#代码是:

 ResultsList.ItemsSource = results.matches.Select(x => new
                {
                    away1 = x.match_visitorteam_name,
                    home1 = x.match_localteam_name,
                    homegoals1 = x.match_localteam_score,
                    awaygoals1 = x.match_visitorteam_score,
                    id1 = x.match_id,
                }).ToList();

我的问题是当我点击第1页的第1联赛,它转发到第2页并且显示结果但是当我回到第1页并点击第2联赛时,它仍然显示来自第1联赛的内容。我的代码是正确的,我认为问题是Json缓存或其他东西。当我从第二页回来时有没有办法清除这个缓存?怎么了?

2 个答案:

答案 0 :(得分:2)

您是正确的,手机会缓存最近一次保存数据的电话。

在您的web服务调用中,JSON在URL的末尾附加一个随机数

像这样的东西

Random ran = new Random();

webClient.DownloadStringAsync(new Uri("http://www.yoururl.com/yourJson.php?random=" + ran.Next().ToString(), UriKind.RelativeOrAbsolute);

答案 1 :(得分:0)

您可以尝试:

Client.CachePolicy = new System.Net.Cache.RequestCachePolicy(System.Net.Cache.RequestCacheLevel.BypassCache);

WebClient.Headers.Add("Cache-Control", "no-cache");

并且仍然无效,请使用HttpRequest对象而不是WebClient,并希望(如果您将疑虑置于WebClient),一切都将得到解决。如果它没有用HttpRequest解决,那么问题确实存在于其他地方。