母版頁被調用兩次。完整頁面呈現後的一次。此時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