首页 > 代码库 > 关于.aspx与.aspx.cs的关系

关于.aspx与.aspx.cs的关系

开始的时候没在意,现在发现还是知道点的好....GOOGLE之~~~

发现解释的比较清楚的一段话:

 

aspx和对应的.aspx.cs是一个页面一个代码,页面基本上只负责显示格式之类的,而所有的服务器端动作都是在aspx.cs中定义的。也就是说他们其实是一个东西的两面,aspx中所有服务器端控件都可以在对应的aspx.cs中使用,反之亦然,当然也可以定义对应的动作,如果是在IDE中开发的话,不需要你进行任何额外的工作。而在编译之后,aspx.cs变成了bin目录下的dll,而aspx文件没什么变化,发布的时候只需要把aspx和dll带上就可以了,cs文件作为原代码不需要发布出去.

 

 

ASPX是前台,表示设计页面,ASPX.CS是后台,是代码功能实现,分开来设计是为了代码清晰,功能模块化, 

这是Code-Behind结构,即代码在页面HTML的后面。   
    
  在.aspx文件中,主要是页面的HTML;   
  而在.aspx.cs文件中,是C#代码,在.aspx中添加的控件的事件,它的代码都在.aspx.cs中。      
  打一个不恰当的比喻:   
  .aspx页面的内容就像我们平时编的静态网页(.htm,.html)--当然不是完全一样。   
  .aspx.cs中的内容,就非常像我们开发windows平台下的软件一样(例如delphi,VC等)--当然也不是完全一样。

 

而深入其中的研究貌似我还是有点似懂非懂..但是还是贴上吧:

aspx.cs文件中存放有一个类(例如WebForm1),在你向服务器请求该页面时,ASP.NET就会将aspx.cs中的类作为基类,把当前的页面(aspx文件)及基类,编译生成一个新的类(例如了B),然后由B类产生对象在服务器端生成HTML文件发送给客户端,所以说这里是继承关系,大家可以在aspx文件的开头看到如下语言也足可以说明这一点:<%@   Page   language="c#"   Codebehind="WebForm1.aspx.cs"   AutoEventWireup="false"   Inherits="WebApplication1.WebForm1"   %>其中的Inherits="WebApplication1.WebForm1"就说明了这种继承关系.

深入研究详细参见http://www.cnblogs.com/axzxs2001/archive/2009/01/19/1378383.html