我一直在审查由前同事撰写的asp.net应用程序。
有以下文件:
default.aspx and default.aspx.vb
writers.aspx and writers.aspx.vb
forms.aspx and forms.aspx.vb
main.aspx and main.aspx.vb
这就是我迷茫的地方。
Default.aspx says:
**CodeBehind="Default.aspx.vb" Inherits="ABA_Reports.Main" %>**
Default.aspx.vb says:
**Partial Public Class Main**
Just to give one more example,
writers.aspx says:
**CodeBehind="Reporter.aspx.vb" Inherits="ABA_Reports._Default" %>**
While writers.aspx.vb has:
**Partial Public Class _Default**
有人会友好地向我解释这是如何运作的吗?
答案 0 :(得分:1)
基本上,ASP.NET允许您将网页的定义分为两部分。一个是声明性页面,您可以使用标签(HTML,ASP或其他标签)定义页面的布局。页面的声明部分具有“.aspx”扩展名。
此外,网页的另一部分通常在单独的文件中定义,称为“代码隐藏”文件。在您的情况下,使用VB,这些文件的名称与页面的声明部分相同,但扩展名为“.aspx.vb”。
在页面的声明部分,您提到的代码,
...CodeBehind="Default.aspx.vb" Inherits="ABA_Reports.Main" %>
表示此页面的代码隐藏在文件Default.aspx.vb
中。它还告诉您页面的声明部分继承自代码隐藏文件中定义的Main
命名空间中的ABA_Reports
类。
Inherits 属性告诉您在代码隐藏文件中使用哪个类。可能不是很清楚你可以在后面的代码中定义多个类。在许多情况下(默认情况下),只有一个,但继承会告诉您在任何情况下使用哪个。
以下是可以包含在@Page声明http://msdn.microsoft.com/en-us/library/ydy4x04a.aspx中的所有属性的完整说明。
在您的代码隐藏文件中,您会看到
行Partial Public Class Main
这意味着后面的代码定义了“部分”类。所有部分真正意味着类的一部分是在当前页面中定义的,而其中的一部分是在其他地方定义的。
代码隐藏文件的主要目的是让您将运行页面的代码与HTML和asp以及可能定义其外观的其他标记分开。它还允许编译页面代码,从而提高性能。
答案 1 :(得分:0)
好的,默认命名空间是“ABA_Reports”。
在没有列出命名空间的情况下定义的所有类都将作为名称(路径)的开头。
这就是为什么当aspx页面引用代码隐藏(vb类)时,它使用ABA_Reports.name,其中name是vb文件的类名。
这是否说清楚了?