我们正在处理 ASP.Net 中的数据缓存,其中我们有一个带有标签和按钮的 aspx 页面。如果 Cache 不为空,标签将显示缓存数据,否则会将数据加载到缓存中并在标签中显示“DataReloading”,单击按钮应清除缓存中的数据,标签应显示“DataReloading”,当我们刷新时再次页面,标签应显示缓存数据
期待:
1)当第一次页面加载时,标签应该显示“DataReloading”,因为缓存是空的,我们正在加载数据
2)当我们刷新时,标签应该显示“缓存数据”,因为缓存中有“缓存数据”字符串
3)当我们点击清除缓存按钮时,标签应该显示“DataReloading”,当我们刷新页面标签应该显示缓存数据
我们面临的问题是在点击发布按钮时,我们总是在标签中得到“DataReloading”。
谁能告诉我们逻辑哪里错了。
这是来自aspx页面的代码
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";
}
}
}
}