温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

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

发布时间:2021-07-15 15:38:35 来源:亿速云 阅读:977 作者:Leah 栏目:编程语言

ASP.NET中Default.aspx文件的作用是什么,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。

首先大家看到无论在1.1还是2.0中,用VS创建的网站每个aspx文件都对应一个cs文件(或者vb等其它语言).而cs文件里的类一般和文件同名, 如果遇见关键字的情况才会自动使类名前加个'_',例如:_Default.创建的这个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类。但是我们现在说的东西对于System.Web.HttpContext类运用很有帮助。

我们访问了Default.aspx,那么是只访问ASP.NET Default.aspx文件,或者该类么?答案当然不是。ASP.NET中当子类被请求时,会先实例化父类。先建立父类的字段,然后是构造函数。

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  }

从上面的类中可以看出,该类没有字段,也没有构造函数。实例化它又得先实例化System.Web.UI.Page类。 System.Web.UI.Page类不是本文要讨论的。在实例化_Default类的时候首先执行的是OnInit方法。它重写了 System.Web.UI.Page.OnInit。然后调用InitializeComponent方法,而InitializeComponent 方法又调用了Load事件,执行了Page_Load方法。

在Page_Load方法被执行之前,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:在此处添加构造函数逻辑  //  try  {  if(HttpContext.Current.Application.Count<1)  HttpContext.Current.Application.Add("Title","我的网站");  //在Application没有被创建的时候执行  }  catch  {  HttpContext.Current.Response.Redirect("Err.Htm",true);  //出现错误,跳转到错误页面  }  }   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> 

看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注亿速云行业资讯频道,感谢您对亿速云的支持。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI