母版页被调用两次。完整页面呈现后的一次。此时isPostback值为false,SESSION为空。ASP.NET母版页错误
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
//SOME CODE
try
{
strUserId = Session[USERID].ToString();
}
catch
{
Response.Redirect("error.aspx");
}
}
}
对于母版页的第一页加载(渲染页之前)一切都很好。再次渲染主页面的page_load被调用后。这次访问会话是给一个例外:
HttpException(当enableSessionState设置为true时才能使用会话状态,无论是在配置文件或Page指令也请确保System.Web程序。 SessionStateModule或自定义会话状态模块包含在应用程序配置中的
<configuration>\<system.web>\<httpModules>
部分。)。
如果page_load被调用两次或三次,我没有任何问题。我只是不想在第二页加载时访问SESSION。
编辑2
第二主页负载的,因为该代码我已经较早监督(本Global.asax文件)发生
void Application_Error(object sender, EventArgs e)
{
Server.Transfer("~/ErrorMessage.aspx");
}
的ErrorMessage.aspx页面是母版页的子页面:(
但仍然回答的问题是为什么Application_Error()即使在成功呈现页面时也会生成?我试图在Application_Error()处保留一个断点并且事件参数每次都是空的。
你的意思是“母版页被调用两次”?你如何得出这个结论? – 2012-08-14 11:58:21
你将需要更多的方式。请张贴您的母版页的代码隐藏以及有问题的子页面,以便我们可以更好地了解您正在谈论的内容。 – mclark1129 2012-08-14 11:59:30
@Andre Calil:我在主页的页面加载时保持了一个中断点。它在呈现页面之前,然后在呈现页面之后调用。 – Rajneesh 2012-08-14 12:01:58