根据主题变换图像

本文关键字:变换 图像 | 更新日期: 2023-09-27 17:53:30

在页面加载时,我添加了以下代码

if (Request.Cookies["switchstyle"] != null)
{
    string  i = Request.Cookies["switchstyle"].Value;
    if(i == "1")
        ThemeImageUrl = "~/ImagesW";
    else
        ThemeImageUrl = "~/Images";
}
我正在写代码
CipCalendar.TodaysDate = CipCalendar.TodaysDate.AddMonths(-1);
StoreMonthValue(CipCalendar.TodaysDate.ToString()); // storing month in a cookie.
//Month.Text = CipCalendar.TodaysDate.ToString(MONTH_FORMAT);
imgMonth.ImageUrl = ThemeImageUrl + "/CalendarImages/" + CipCalendar.TodaysDate.ToString(MONTH_FORMAT) + ".gif";
SetMonthNavigateButtonVisible();
SetYearNavigateButtonVisible();
isNextMonth = false;
SetCases();

它的工作很好,日期在图像上改变,但是当我使用浏览器返回BTN时,这段代码不工作。

基于主题的变化,当我按下btnpriv以及浏览器返回BTN日期应该改变,这是没有发生现在点击浏览器返回BTN

根据主题变换图像

有两个想法你可以做到。

首先,当您更改主题时,然后使用redirect()重新加载页面,用户无法返回。当使用go back时,从缓存中重新加载页面是合乎逻辑的,这样您就可以看到以前的图像。

第二,禁用动态页面的缓存。

public static void DisablePageCaching() 
{ 
//Used for disabling page caching 
HttpContext.Current.Response.Cache.SetExpires(DateTime.UtcNow.AddDays(-1));
HttpContext.Current.Response.Cache.SetValidUntilExpires(false); 
HttpContext.Current.Response.Cache.SetRevalidation(HttpCacheRevalidation.AllCaches);
HttpContext.Current.Response.Cache.SetCacheability(HttpCacheability.NoCache);
HttpContext.Current.Response.Cache.SetNoStore(); 
}