0

我们正在处理 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";

            }
        }
    }
}
4

0 回答 0