溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

ASP.NET中Default.aspx文件的作用是什么

發(fā)布時間:2021-07-15 15:38:35 來源:億速云 閱讀:1151 作者:Leah 欄目:編程語言

ASP.NET中Default.aspx文件的作用是什么,很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細講解,有這方面需求的人可以來學習下,希望你能有所收獲。

首先大家看到無論在1.1還是2.0中,用VS創(chuàng)建的網站每個aspx文件都對應一個cs文件(或者vb等其它語言).而cs文件里的類一般和文件同名, 如果遇見關鍵字的情況才會自動使類名前加個'_',例如:_Default.創(chuàng)建的這個cs文件繼承自System.Web.UI.Page類,而且只能\必須繼承該類.原因就是aspx文件是繼承cs文件的.

就拿Default.aspx,Default.aspx.cs文件來說.Default.aspx.cs里包含了類 _Default,繼承字System.Web.UI.Page
通過

publicclass_Default:System.Web.UI.Page  {  privatevoidPage_Load(objectsender,System.EventArgse)  {  //在此處放置用戶代碼以初始化頁面  }  }  }

就能看得出來.
而ASP.NET Default.aspx文件,雖然沒有闡明用的哪個類,但是,實際上已經繼承自_Default類.

  1. <%@Pagelanguage="c#"Codebehind="Default.aspx.cs"AutoEventWireup=
    "false"Inherits="MyTest._Default"%> 

  2. <!DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML4.0Transitional//EN"> 

  3. <HTML> 

  4. <HEAD> 

  5. <title>Default</title> 

  6. <metanamemetaname="GENERATOR"Content="MicrosoftVisualStudio.NET7.1"> 

  7. <metanamemetaname="CODE_LANGUAGE"Content="C#"> 

  8. <metanamemetaname="vs_defaultClientScript"content="JavaScript"> 

  9. <metanamemetaname="vs_targetSchema"content=
    "http://schemas.microsoft.com/intellisense/ie5"> 

  10. </HEAD> 

  11. <bodyMS_POSITIONINGbodyMS_POSITIONING="GridLayout"> 

  12. <formidformid="Form1"method="post"runat="server"> 

  13. <FONTfaceFONTface="宋體"></FONT> 

  14. </form> 

  15. </body> 

  16. </HTML> 

以上代碼***句話***Inherits="MyTest._Default"就表明了這點.這個文件我是以VS2003建立的,也就是 ASP.NET1.1,MyTest是我用的命名空間。

類的運行機制

說了這么多,實際上我們還是沒有說到System.Web.HttpContext類。但是我們現(xiàn)在說的東西對于System.Web.HttpContext類運用很有幫助。

我們訪問了Default.aspx,那么是只訪問ASP.NET Default.aspx文件,或者該類么?答案當然不是。ASP.NET中當子類被請求時,會先實例化父類。先建立父類的字段,然后是構造函數(shù)。

publicclass_Default:System.Web.UI.Page  {  privatevoidPage_Load(objectsender,System.EventArgse)  {  //在此處放置用戶代碼以初始化頁面  }   Web窗體設計器生成的代碼#regionWeb窗體設計器生成的代碼  overrideprotectedvoidOnInit(EventArgse)  {  //  //CODEGEN:該調用是ASP.NETWeb窗體設計器所必需的。  //  InitializeComponent();  base.OnInit(e);  }   /**////<summary> ///設計器支持所需的方法-不要使用代碼編輯器修改  ///此方法的內容。  ///</summary> privatevoidInitializeComponent()  {  this.Load+=newSystem.EventHandler(this.Page_Load);   }  #endregion  }

從上面的類中可以看出,該類沒有字段,也沒有構造函數(shù)。實例化它又得先實例化System.Web.UI.Page類。 System.Web.UI.Page類不是本文要討論的。在實例化_Default類的時候首先執(zhí)行的是OnInit方法。它重寫了 System.Web.UI.Page.OnInit。然后調用InitializeComponent方法,而InitializeComponent 方法又調用了Load事件,執(zhí)行了Page_Load方法。

在Page_Load方法被執(zhí)行之前,System.Web.UI.Page類的很多對象是不能使用的,比如:Application,Session等。

System.Web.HttpContext類Current屬性的運用

終于說到本文的重點了,可能這部分也不會說很多,但是上面說的確實是為這里服務的。也不多說了,太長的文章一般沒人看,何況我寫的比較膚淺,并且不夠精彩。

Application可以這樣使用:

usingSystem;  usingSystem.Web;   namespaceMyTest  {  /**////<summary> ///MyTest的摘要說明。  ///</summary> publicclassMPage:System.Web.UI.Page  {  publicMPage()  {  //  //TODO:在此處添加構造函數(shù)邏輯  //  try  {  if(HttpContext.Current.Application.Count<1)  HttpContext.Current.Application.Add("Title","我的網站");  //在Application沒有被創(chuàng)建的時候執(zhí)行  }  catch  {  HttpContext.Current.Response.Redirect("Err.Htm",true);  //出現(xiàn)錯誤,跳轉到錯誤頁面  }  }   publicstringMy_Title  {  get  {  returnApplication["Title"].ToString();  }  }  }  }

Default.aspx.cs繼承

usingSystem;  usingSystem.Collections;  usingSystem.ComponentModel;  usingSystem.Data;  usingSystem.Drawing;  usingSystem.Web;  usingSystem.Web.SessionState;  usingSystem.Web.UI;  usingSystem.Web.UI.WebControls;  usingSystem.Web.UI.HtmlControls;   namespaceMyTest  {  /**////<summary> ///_Default的摘要說明。  ///</summary> publicclass_Default:MPage  {  privatevoidPage_Load(objectsender,System.EventArgse)  {  //在此處放置用戶代碼以初始化頁面  }   Web窗體設計器生成的代碼#regionWeb窗體設計器生成的代碼  overrideprotectedvoidOnInit(EventArgse)  {  //  //CODEGEN:該調用是ASP.NETWeb窗體設計器所必需的。  //  InitializeComponent();  base.OnInit(e);  }   /**////<summary> ///設計器支持所需的方法-不要使用代碼編輯器修改  ///此方法的內容。  ///</summary> privatevoidInitializeComponent()  {  this.Load+=newSystem.EventHandler(this.Page_Load);   }  #endregion  }  }

ASP.NET Default.aspx文件使用

  1. <%@Pagelanguage="c#"Codebehind="Default.aspx.cs"AutoEventWireup=
    "false"Inherits="MyTest._Default"%> 

  2. <!DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML4.0Transitional//EN"> 

  3. <HTML> 

  4. <HEAD> 

  5. <title><%=My_Title%></title> 

  6. <metanamemetaname="GENERATOR"Content="MicrosoftVisualStudio.NET7.1"> 

  7. <metanamemetaname="CODE_LANGUAGE"Content="C#"> 

  8. <metanamemetaname="vs_defaultClientScript"content="JavaScript"> 

  9. <metanamemetaname="vs_targetSchema"content=
    "http://schemas.microsoft.com/intellisense/ie5"> 

  10. </HEAD> 

  11. <bodyMS_POSITIONINGbodyMS_POSITIONING="GridLayout"> 

  12. <formidformid="Form1"method="post"runat="server"> 

  13. <FONTfaceFONTface="宋體"></FONT> 

  14. </form> 

  15. </body> 

  16. </HTML> 

看完上述內容是否對您有幫助呢?如果還想對相關知識有進一步的了解或閱讀更多相關文章,請關注億速云行業(yè)資訊頻道,感謝您對億速云的支持。

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經查實,將立刻刪除涉嫌侵權內容。

AI