如果存在,爲什麼不將它存儲在Page_Load
事件中?如果它不涉及Session
的值。
你甚至可以創建一個基本頁面的所有網頁的,對於QueryString
是否存在等你有興趣的檢查。
一個MasterPage
與AA公共屬性來訪問這個值inheirit也將是有益的,如:
// in your master page
public string YourSessionVariable
{
get
{
string yourValue = "SomeDefault"; // if session expired and param not passed
if (Request.QueryString["yourQueryParamName"] != null)
{
Session["yourSessionParamName"] = Request.QueryString["yourQueryParamName"];
}
return (Session["yourSessionParamName"] == null) ?
yourValue : Session["yourSessionParamName"].ToString();
}
}
// Then in your pages your can just fetch it anytime with
Master.YourSessionVariable
+1就是這樣...... – eglasius 2010-05-26 16:47:06
事實上,Session不可用是Application_BeginRequest:它會拋出一個異常說「會話狀態在此上下文中不可用」,並且HttpContext.Current.Session爲空。 雖然,您間接地指出我可以使用Session的Application_AcquireRequestState事件! – hoang 2010-05-27 08:20:37