我一直在學習一點asp.net,我一直在關注整個動態主題變化的問題,我一直在關注一本書,教會如何通過一個drop下拉菜單,但我想挑戰自己,並用按鈕做。通過按鈕動態更改網站主題
我的網站有2個主題,並表示每個主題,因此,兩個按鈕(orangefresh和greenfresh),這是我的母版頁後面的代碼:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
public partial class mpage : System.Web.UI.MasterPage
{
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
string selectedTheme = Page.Theme;
HttpCookie webtheme = Request.Cookies.Get("webtheme");
if (webtheme != null)
{
selectedTheme = webtheme.Value;
}
}
}
protected void orangefresh_Click(object sender, EventArgs e)
{
HttpCookie webtheme = new HttpCookie("webtheme");
webtheme.Expires = DateTime.Now.AddMonths(3);
webtheme.Value = "orangefresh";
Response.Cookies.Add(webtheme);
Response.Redirect(Request.Url.ToString());
}
protected void greenfresh_Click(object sender, EventArgs e)
{
HttpCookie webtheme = new HttpCookie("webtheme");
webtheme.Expires = DateTime.Now.AddMonths(3);
webtheme.Value = "greenfresh";
Response.Cookies.Add(webtheme);
Response.Redirect(Request.Url.ToString());
}
}
這是我的基本頁:
using System;
using System.Web;
public class BasePage : System.Web.UI.Page
{
private void Page_PreInit(object sender, EventArgs e)
{
HttpCookie webtheme = Request.Cookies.Get("webtheme");
if (webtheme != null)
{
Page.Theme = webtheme.Value;
}
}
public BasePage()
{
this.PreInit += new EventHandler(Page_PreInit);
}
}
鑑於我沒有使用Cookie的經驗,我決定從一開始就查看代碼,我測試了Click事件是否在Cookie上存儲值,我在網站上創建了一個標籤並給出了.Text屬性cookie的.Value,什麼都沒有發生。於是我開始刪除代碼,看看什麼是停止的事件,我發現這條線......
Response.Redirect(Request.Url.ToString());
...是負責。爲了這個原因,我刪除了這一行,並再次測試了我的網站,但仍然沒有改變主題。
任何幫助,將不勝感激。
您是否在web.config中設置了主題? – dtsg
我在web.config文件中放置了 ,因爲這是默認主題,還有什麼我應該做的? –
你能發佈masterpage的標記嗎? – dtsg