我们正在ASP.Net中进行数据缓存,我们有aspx页面,它有一个Label和一个Button。 如果Cache不为null,Label将显示缓存数据,否则它会将数据加载到缓存中并在Label中显示“DataReloading”,Click of a Button应清除缓存中的数据,Label应显示“DataReloading”,当我们刷新时再次页面,标签应显示缓存数据
1)首次加载页面时,Label应显示“DataReloading”,因为Cache为空,我们正在加载数据
2)当我们刷新时,Label应该显示“缓存数据”,因为缓存中有“缓存数据”字符串
3)当我们点击按钮清除缓存时,Label应显示“DataReloading”,当我们刷新页面标签时应显示缓存数据
我们面临的问题是点击发布按钮,我们总是在标签中获得“DataReloading”。
任何人都可以告诉我们逻辑错误的地方。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
namespace FormAuthenticationPractice
{
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
LoadCache();
}
private string GetData()
{
return "Cache Data";
}
protected void btnClearCache_Click(object sender, EventArgs e)
{
Cache.Remove("Data");
lblData.Text = "DataReloading";
}
private void LoadCache()
{
if (Cache["Data"] != null)
{
lblData.Text = Convert.ToString(Cache["Data"]);
}
else
{
Cache["Data"] = GetData() as string;
lblData.Text = "DataReloading";
}
}
}
}