0

ラベルとボタンを持つaspxページがあるASP.Netでデータキャッシュに取り組んでいました。Cache が null でない場合、ラベルにはキャッシュされたデータが表示されます。それ以外の場合は、データがキャッシュに読み込まれ、ラベルに「DataReloading」が表示されます。ボタンをクリックすると、キャッシュからデータが消去され、ラベルに「DataReloading」が表示され、更新時にラベルに表示されます。ページを再度表示すると、ラベルに Cache Data が表示されます

期待:

1) 初めてページがロードされると、ラベルは「DataReloading」と表示されます。これは、キャッシュが空で、データをロードしているためです。

2) Refresh すると、Cache に「Cache Data」文字列が含まれていたため、Label に「Cache Data」が表示されます。

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