呵呵,这个问题还重来没想过。
页面不是继承cs文件。aspx 和含派 .cs它们是一个数组 ,也就是说它们是平级的。
至于楼主问的.cs文件为什么能访问aspx里的id,button等等,只是在.cs类里面有个Page_Load事件,当用户一点击button,然后asp.net将整个aspx整个页面传回到cs,Page_Load中,编译cs时解析才能获得到,然后在将整个aspx页面解析成html文件一起传回页面,这也就是为什么当我们点击一下页面的控件整个厅弯页面会刷新一下的问题,之后才会出来什么ajax控件等技术。
至于后台有两个文件.cs和designer.cs. ASP不是把后台代码和前台谈伏贺显示代码放在一起的吗,那样维护起来有点乱,现在改变成asp.net就把它分开了,但是实际上它们还是在一类中,用了partial,编译时生成在一个文件存放在dll中的。
在编译的过程中,好像是要合成一个类,在。net3.5(粗森还是3.0)以前吧,(VS2003包括以前禅裂),是继承的关系岩袭亩!!现在是合并的关系。
.aspx是设计页面颤虚,而.cs是类页面,也就是说设计页面用到的类信息在这个页面里面,银槐其实就是把设计和实现分离开锋洞友来。
这两个文件本来就有不同职责,怎么会合并?但是肯定是要联合生成一个文件。
partial类是类的一部分,显然完整的类即是把所有此类的partial类合并在一起形成一个完整的类。
加上partial关键字就像是分页的功能,一张纸不够写还要写在另一张上,最后合起来就好了。
浏览器在编译时,先编肆扒译cs中的内容,然后编译aspx,你可以把aspx也看做是一种类,至于你说的橘雹悄那个继承其实不是的,.net在iss之前会先“捕圆渣获”你的页面进行编译,这时会把asp控件编译为html标准可以识别的控件类型,例如button会被编译成input~
在vs中,有很多朋友问起,在一个网站项目中的aspx和aspx.cs文件的关系,现在就归纳如下:
可以把aspx文件分成三部分:
l 有run=”server”属性的标签
l <% %>
l 标准HTML标签
再算上aspx.cs,一共是四块,我们分别来说他们的关系。
(图一)
我们来做个例子,结合上面的例子来看一下吧。
我们新建一个网站,页面如下:
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>