我正在开发一个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缓存或其他东西。当我从第二页回来时有没有办法清除这个缓存?怎么了?
答案 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
解决,那么问题确实存在于其他地方。