C#新建页面的头部详细解释

<%@ page Language="C#" AutoEventWireup="true" CodeBehind="ForestIndex.aspx.cs" Inherits="GZLY.ForestSource.ForestIndex">

学习过asp.net的同学,对上面这句话应该非常熟悉,因为每当我们新建一个.aspx页面的时候;上面这句话就会出现在.aspx这个页面最上方。

解释:

  1. @page 表示所使用的是page页面,也就是aspx页面;

  2. Language=“C#”表示的使用的是C#语言;

  3. AutoEventWireup:asp.net页框架支持以自动方式将页面事件与方法相关联。如果Page指令的AutoEventWrieup属性被设置为true(默认为true),该页框架将自动调用页事件,即Page_Init和Page_Load方法。在这种情况下,不需要任何显示的handles子句或者委托;

  4. AutoEventWireup=”true”这一属性决定了当前页是否自动关联某些特殊事件,从浏览器触发的事件不能立刻在本地得到处理,而是post到服务器上,因此,asp.net建立了委托(代理)机制,建立一个事件的时候建立了相应的委托:

  5. Inherits是继承的意思:Inherits:表明该文件继承自哪个命名空间的哪个类 (不是你理解的命名空间)

  6. 每个aspx文件都对应一个cs文件,而cs文件里的类一般和文件同名

下面的代码就是建立委托的过程:

private void InitializeComponent()
{
this.mybutton.Click += new System.EventHandler(this.Button1_Click);//委托
}
private void Button1_Click(object sender, System.EventArgs e)
{
//事件内容
}

委托将事件与该页面显式关联,如果没有设置AutoEventWireup=”true”,事件将不执行;则需要这样写:

//先建立委托
private void InitializeComponent()
{
this.mybutton.Click += new System.EventHandler(this.Button1_Click);//委托
this.Load += new System.EventHandler(this.Page_Load);//可以用AutoEventWireup属性避免的委托
}
//再执行相应的方法
private void Page_Load(object sender, System.EventArgs e)
{
// 事件内容
}
private void Button1_Click(object sender, System.EventArgs e)
{
//事件内容
}

AutoEventWireup属性设置为true的缺点:

  • 页面不需要关联如此多的特殊事件,会增加额外的操作和系统开销。

  • asp.net页面框架自动调用事件处理的方法基于其预定名称,这会导致相同事件处理方法当页面运行时被调用两次,增加系统的开销。
    ·
    最后:

  • Microsoft建议将AutoEventWireup设置为false;

  • 当 Visual Studio 为 Web 窗体页创建页和类文件时,它将生成从基 Page 类继承的代码(
    cs文件继承自System.Web.UI.Page类,而且只能必须继承该类.原因就是aspx文件是继承cs文件的)

在Default.cs文件中有类似代码:

public partial class Default : System.Web.UI.Page

System.Web.UI.Page 派生一个名为 Default 的新类
然后 .aspx 页文件又从派生的 Default 类继承:

Inherits="GZLY.ForestSource.ForestIndex"
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值