我在主页加载中声明:
Session["sessionString"] = "stringX";
在我的网页上也加载了,我称之为
string sessionString= (string)Session["sessionString"];
我调试和网页中的值是“”出了什么问题?
答案 0 :(得分:3)
内容页面的Page_Load
事件在主页的Page_Load
事件之前被称为(请参阅此SO answer和MSDN article) 。因此,当你打电话
string sessionString= (string)Session["sessionString"];
在您的网页中,Session["sessionString"]
尚未包含任何值,默认为空字符串。
作为解决方法,您可以在母版页的Session["sessionString"]
或Init
事件中设置PreLoad
的值。
答案 1 :(得分:0)
JW Lim是正确的......内容页面的加载事件将在加载主页面之前触发。
@ user3445314,您可以在Global.asax中使用“Session_Start”事件,并设置与您在母版页中设置的值相同的值。
首先触发“Session_Start”事件,然后发生内容页面加载事件。
我希望这可以解决你的问题
答案 2 :(得分:0)
在Master PreRender中声明会话
protected override void OnPreRender(EventArgs e)
{
Session["sessionString"] = "stringX";
}
通过ContetPage OnUnload事件获取它
protected override void OnUnload(EventArgs e)
{
string sessionString= (string)Session["sessionString"];
}