悬赏分:10 浏览:455 次
ASP.NET 2.0中的partial,实际上是把存储于不同文件中的HTML和code behind编译成一个单独的Web Page Class.
请问上述这种说法对吗?如果对的,那为什么在CodeFile里定义的私有变量不能在aspx页面里访问呢?在asp.net 2.0里面,aspx和cs两个文件之间的关系是partial 还是Inherits?
比如Default.aspx页面,.cs可能生成一个叫_Default的类或者叫Default的类
而.aspx会生成一个叫aspnet_Default的类,这个类继承自_Default类/Default类
因此,如果你在.aspx写了与.cs中有相同签名的方法,.aspx中的方法是最后会执行的,.cs的就被无视了
|
partial是用在类,接口的拆分定义上的,并不包括html aspx是页面文件,cs是代码文件,不一样的,是分离的. partial是对cs中代码的拆分,和aspx没关系的 好像是继承的关系,呵呵 aspx页面是继承cs代码的。他们是继承关系。aspx页面中这个地方可以看出来Inherits="类名"。 私有变量是不能访问的,应该使用protected或者public类型才可以。 它们的执行顺序就是先执行cs代码,后执行aspx代码页面。 .aspx中定义的类是.aspx.cs中定义的类的子类 最直接的体现就是可以在.aspx中访问对应的.aspx.cs中定义的protected方法,而不能访问private方法。 aspx是页面文件,cs是代码文件. 汇总下楼上各位的回答: *_* 1.partial意指C#类,接口的折分,并不包含HTML文件. 2.Inherit指aspx的页面的C#代码和code behind所指CS文件的代码的继承关系.所以说aspx文件关联的CS文件的私有成员是不能访问的。如需要访问只能将来code behind文件的方法||属性的声明更改为protect,public. 3.partial 用在aspx的code behind文件中是来辅助原有的code behind方式这种方式叫做code beside.可以在在1.0中每往aspx上拖一个控件,那么在它的code behide 的文件就会有一个声明,而现在这个声明这被移到了别个文件中它的类名和code behide文件一样,且也有partial声明叫xxx.aspx.desinger.cs. 同意 zaluao 的说法 如果你想研究的更深一点,可以参考它的内部机制: 关于编译和临时文件的: The page handler factory is responsible for either finding the assembly that contains the page class or
关于部分类的职责: Partial classes are a new feature of .NET Framework 2.0 compilers that allow you to break up the 呵呵,回答这么多了,简单的说,就是code behind 呵呵,都差不多了 |
|
2个月前 侯垒 : 有这样一个疑问,如果aspx页面是继承于cs代码页面,那为什么在aspx页面中拖个控件,在cs页面能访问,而且能使用this.控件名称去访问??? |