ASP.NETDefault.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
通过

 
 
 
  1. publicclass_Default:System.Web.UI.Page
  2. {
  3. privatevoidPage_Load(objectsender,System.EventArgse)
  4. {
  5. //在此处放置用户代码以初始化页面
  6. }
  7. }
  8. }

就能看得出来.
而ASP.NET Default.aspx文件,虽然没有阐明用的哪个类,但是,实际上已经继承自_Default类.

 
 
 
  1. <%@Pagelanguage="c#"Codebehind="Default.aspx.cs"AutoEventWireup=
    "false"Inherits="MyTest._Default"%>
  2. >
  3. </strong>Default<strong>
  4. <metanamemetaname="GENERATOR"Content="MicrosoftVisualStudio.NET7.1">
  5. <metanamemetaname="CODE_LANGUAGE"Content="C#">
  6. <metanamemetaname="vs_defaultClientScript"content="JavaScript">
  7. <metanamemetaname="vs_targetSchema"content=
    "http://schemas.microsoft.com/intellisense/ie5">
  8. <bodyMS_POSITIONINGbodyMS_POSITIONING="GridLayout">
  9. <formidformid="Form1"method="post"runat="server">
  10. <FONTfaceFONTface="宋体">

以上代码***句话***Inherits="MyTest._Default"就表明了这点.这个文件我是以VS2003建立的,也就是 ASP.NET1.1,MyTest是我用的命名空间。

类的运行机制

说了这么多,实际上我们还是没有说到System.Web.HttpContext类。但是我们现在说的东西对于System.Web.HttpContext类运用很有帮助。

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

 
 
 
  1. publicclass_Default:System.Web.UI.Page
  2. {
  3. privatevoidPage_Load(objectsender,System.EventArgse)
  4. {
  5. //在此处放置用户代码以初始化页面
  6. }
  7. Web窗体设计器生成的代码#regionWeb窗体设计器生成的代码
  8. overrideprotectedvoidOnInit(EventArgse)
  9. {
  10. //
  11. //CODEGEN:该调用是ASP.NETWeb窗体设计器所必需的。
  12. //
  13. InitializeComponent();
  14. base.OnInit(e);
  15. }
  16. /**////
  17. ///设计器支持所需的方法-不要使用代码编辑器修改
  18. ///此方法的内容。
  19. ///
  20. privatevoidInitializeComponent()
  21. {
  22. this.Load+=newSystem.EventHandler(this.Page_Load);
  23. }
  24. #endregion
  25. }

从上面的类中可以看出,该类没有字段,也没有构造函数。实例化它又得先实例化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可以这样使用:

 
 
 
  1. usingSystem;
  2. usingSystem.Web;
  3. namespaceMyTest
  4. {
  5. /**////
  6. ///MyTest的摘要说明。
  7. ///
  8. publicclassMPage:System.Web.UI.Page
  9. {
  10. publicMPage()
  11. {
  12. //
  13. //TODO:在此处添加构造函数逻辑
  14. //
  15. try
  16. {
  17. if(HttpContext.Current.Application.Count<1)
  18. HttpContext.Current.Application.Add("Title","我的网站");
  19. //在Application没有被创建的时候执行
  20. }
  21. catch
  22. {
  23. HttpContext.Current.Response.Redirect("Err.Htm",true);
  24. //出现错误,跳转到错误页面
  25. }
  26. }
  27. publicstringMy_Title
  28. {
  29. get
  30. {
  31. returnApplication["Title"].ToString();
  32. }
  33. }
  34. }
  35. }

Default.aspx.cs继承

 
 
 
  1. usingSystem;
  2. usingSystem.Collections;
  3. usingSystem.ComponentModel;
  4. usingSystem.Data;
  5. usingSystem.Drawing;
  6. usingSystem.Web;
  7. usingSystem.Web.SessionState;
  8. usingSystem.Web.UI;
  9. usingSystem.Web.UI.WebControls;
  10. usingSystem.Web.UI.HtmlControls;
  11. namespaceMyTest
  12. {
  13. /**////
  14. ///_Default的摘要说明。
  15. ///
  16. publicclass_Default:MPage
  17. {
  18. privatevoidPage_Load(objectsender,System.EventArgse)
  19. {
  20. //在此处放置用户代码以初始化页面
  21. }
  22. Web窗体设计器生成的代码#regionWeb窗体设计器生成的代码
  23. overrideprotectedvoidOnInit(EventArgse)
  24. {
  25. //
  26. //CODEGEN:该调用是ASP.NETWeb窗体设计器所必需的。
  27. //
  28. InitializeComponent();
  29. base.OnInit(e);
  30. }
  31. /**////
  32. ///设计器支持所需的方法-不要使用代码编辑器修改
  33. ///此方法的内容。
  34. ///
  35. privatevoidInitializeComponent()
  36. {
  37. this.Load+=newSystem.EventHandler(this.Page_Load);
  38. }
  39. #endregion
  40. }
  41. }

ASP.NET Default.aspx文件使用

 
 
 
  1. <%@Pagelanguage="c#"Codebehind="Default.aspx.cs"AutoEventWireup=
    "false"Inherits="MyTest._Default"%>
  2. >
  3. <</strong>%=My_Title%<strong>>
  4. <metanamemetaname="GENERATOR"Content="MicrosoftVisualStudio.NET7.1">
  5. <metanamemetaname="CODE_LANGUAGE"Content="C#">
  6. <metanamemetaname="vs_defaultClientScript"content="JavaScript">
  7. <metanamemetaname="vs_targetSchema"content=
    "http://schemas.microsoft.com/intellisense/ie5">
  8. <bodyMS_POSITIONINGbodyMS_POSITIONING="GridLayout">
  9. <formidformid="Form1"method="post"runat="server">
  10. <FONTfaceFONTface="宋体">

新闻标题:ASP.NETDefault.aspx文件
文章源于:http://www.shufengxianlan.com/qtweb/news20/390470.html

网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联