我有兩個頁面PageA.aspx和PageB.aspx,也是一個dashboard.aspx。從儀表板中,我們可以訪問PageA和PageB。從這些頁面導航回儀表板時,我們使用站點地圖節點。
PageA sitemap是'Dashboard> PageA',PageB是'Dashboard> PageB'。我點擊儀表盤,導航到dashboard.aspx
條件
在PageA.aspx我有一個單選按鈕(x和y)和一個提交按鈕。我的情況是,當我選擇y單選按鈕並單擊submit時,我應該重定向到PageB.aspx,並且PageB.aspx中的站點地圖節點應重命名爲'Dashboard> ConditionX'。但是,如果我直接從dashboard.aspx導航到PageB.aspx,那麼站點地圖節點應該是'Dashboard> PageB'。
我至今
在PageA.aspx完成提交點擊,我檢查單選按鈕,選擇並設置一個會話Session["IsCondition"]=true
,然後用Response.Redirect("~/PageB.aspx")
導航到PageB.aspx。
在PageB.aspx的Page_Load()
我檢查會話
if (Session["IsCondition"] != null && Convert.ToBoolean(Session["IsCondition"]))
{
//My code here if condition is satisfied
SiteMap.Provider.CurrentNode.ReadOnly = false;
SiteMap.CurrentNode.Title = "ConditionX";
SiteMap.Provider.CurrentNode.ReadOnly = true;
}
else
{
//My code here if I was directly accessing from Dashboard
SiteMap.Provider.CurrentNode.ReadOnly = false;
SiteMap.CurrentNode.Title = "PageB";
SiteMap.Provider.CurrentNode.ReadOnly = true;
}
而且,在dashboard.aspx Page_Load()
我已經設置Session["IsCondition"]=null
問題
當我使用的提交按鈕PageA.aspx重定向到PageB.aspx,那麼PageB.aspx中的條件工作是正確的,並且站點地圖顯示爲'Dashboard> ConditionX'。在此頁面中,如果我點擊站點地圖中的Dashboard節點,即使導航到Dashboard,dashboard.aspx頁面的Page_Load
也不會被觸發。由於會話價值沒有得到從儀表板頁中清除,點擊PageB.aspx將加載網頁B與條件這是不是我想要的
問題
爲什麼不儀表盤被解僱? 我在做什麼錯? 儀表板頁面是否被緩存並顯示,Page_load沒有被解僱?