当我们新建一个站点的时候,如果使用默认模板的话,VS2008会自动产生一个Default.aspx窗体页.
他的初始代码如下:
















language : 指定页中所有内联呈现,代码声明块或者代码隐藏文件使用的编程语言.
这里有必要说明下内联呈现,代码声明块和代码隐藏文件的区别.
1.代码呈现块语法如下:




2.代码声明块
代码声明块必须定义在<script>标记中,并且必须使用runat="server"属性标记.



3.代码隐藏文件
OK,也就是Default.aspx.cs
我们接着看后面的属性,先来熟悉下CodeFile和Inherits属性吧...
CodeFile指定页的代码隐藏文件
Inherits指定页继承的代码隐藏类,我们打开代码隐藏文件Default.aspx.cs,就会看到这个类了,该类从Page类派生
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
}
{
protected void Page_Load(object sender, EventArgs e)
{
}
}
ok,继续... 我们重点讲讲AutoEventWireup属性.
该属性默认情况下为true,那么到底有什么用呢,别急,待我具体说来...
我们先打开Default.aspx.cs,写下如下代码:
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
Response.Write("测试中,请勿打扰
");
}
}
{
protected void Page_Load(object sender, EventArgs e)
{
Response.Write("测试中,请勿打扰

}
}
右键点击Default.aspx,选择View in Browser
这时应该显示测试中,请勿打扰...
现在,我们把AutoEventWireup属性设置成false,右键点击Default.aspx,选择View in Browser,发现只是一个空白页.
由此,我们可以推出,该属性是将Page对象和他的事件处理程序关联起来,相当于:

OK,我们现在只是简单地了解了这几个属性,接下来我们进入详细的分析阶段,准备好了吗,嘿嘿,去泡杯水,开始啦

我们先在default.aspx页中加入如下代码:
<div>
<asp:Button ID="Button1" runat="server" Text="Button" onclick="Button1_Click" />
<asp:Label ID="Label1" runat="server" Text='<%# DateTime.Now %>'></asp:Label>
</div>
对了,别忘了把AutoEventWireup属性设回true哦@@<asp:Button ID="Button1" runat="server" Text="Button" onclick="Button1_Click" />
<asp:Label ID="Label1" runat="server" Text='<%# DateTime.Now %>'></asp:Label>
</div>
这里的<%# %>构造块是数据绑定表达式语法,将Text属性设置成DateTime.Now变量的值,然后在代码隐藏文件中进行绑定..
然后在代码隐藏文件中加入如下代码:
protected void Page_Load(object sender, EventArgs e)
{
DataBind();
}
protected void Button1_Click(object sender, EventArgs e)
{
Response.Write("早上好!");
}
当我们向服务器提交请求时,如果是第一次请求,则Page.IsPostBack=false,否则,说明是回发请求.当请求到达服务器时,asp.net首先确定是否要分析和编译该页面,然后再加载编译好的程序集.{
DataBind();
}
protected void Button1_Click(object sender, EventArgs e)
{
Response.Write("早上好!");
}
让我们来看看怎么把default.aspx转换成一个类,然后再编译成一个程序集吧?
首先,在default.aspx窗体页的@Page指令中加入Debug="true"启用调试.
进入asp.net临时文件夹下,C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\
进入你的解决方案目录,你会看到有两个文件夹:

确定哪个文件夹是我们想要的,我们要分析的那个文件夹下面有好多文件.
来到那个文件,你会看到有连续的三个类文件.
就像:
App_Web_XXXXXXX.0.cs
App_Web_XXXXXXX.1.cs
App_Web_XXXXXXX.2.cs
我们先打开App_Web_XXXXXXX.0.cs
这是我们的窗体页转换后的结果,其中包含了两个类:



public class default_aspx : global::_Default, System.Web.IHttpHandler {
#line 12 "F:\WebSite8\Default.aspx"
protected global::System.Web.UI.WebControls.Button Button1;
#line default
#line hidden
#line 13 "F:\WebSite8\Default.aspx"
protected global::System.Web.UI.WebControls.Label Label1;
#line default
#line hidden
#line 10 "F:\WebSite8\Default.aspx"
protected global::System.Web.UI.HtmlControls.HtmlForm form1;
#line default
#line hidden
protected System.Web.Profile.DefaultProfile Profile {
get {
return ((System.Web.Profile.DefaultProfile)(this.Context.Profile));
}
}
protected System.Web.HttpApplication ApplicationInstance {
get {
return ((System.Web.HttpApplication)(this.Context.ApplicationInstance));
}
}
}
#line 12,13,10 分别定义了Button变量Button1,Label变量Label1以及Form变量from1,回到我们的窗体页看看他们分别对应什么,对了,是控件id号.
再来看第二个类:机子比较卡,我分到下一篇文章中. http://www.cnblogs.com/honey/articles/1161203.html