1

当您在 VS 2008 中创建新的 asp.net 页面并选择后面的代码时,它还会创建典型的 aspx.vb 或 aspx.cs 文件以配合它。

在这些文件的顶部,VS 将“部分类”名称命名为文件结构和/或 aspx 文件的名称。

问题:是否有最佳实践?我可以只为我的应用程序中的所有页面或单个目录使用一个类名,而不必给每个页面一个唯一的名称吗?

克里斯

4

5 回答 5

3

我认为“部分类”的原因是允许 Visual Studio 将所有声明放在一个单独的文件中,这样它们就不会弄乱代码隐藏。除了 aspx.vb/cs 文件之外,还有一个 Designer.vb/cs 文件,其中包含所有控件声明。

查看asp.net:部分类和继承以获取更多信息。

于 2009-03-29T23:23:40.013 回答
1

代码隐藏特定于单个页面。弄乱它会破坏 aspx 模型(请参阅 aspx 页面顶部的“继承”或类似内容)。

每个 aspx 页面(在常规 ASP.NET 中)都应该有一个单独的类。

在 ASP.NET MVC 中,请注意单个控制器类通常与多个相关视图相关联(并且 aspx/ascx 在 MVC 中不倾向于具有代码隐藏)。

于 2009-03-29T23:06:34.737 回答
1

在我们的项目中,由于大部分实际工作是由服务器端标签插入页面的服务器控件完成的,因此我们实际上不需要在大多数页面中隐藏代码。因此,在我们的 22 个 aspx 页面中,大约有 18 个甚至没有 <%Page%> 指令。默认页面基类是从 web.config 文件中设置的:

    <pages masterPageFile="~/MasterPage.master" pageBaseType="OurProject.OurBasePageClass">
    </pages>
于 2009-03-29T23:17:11.323 回答
-1

不,每个页面都必须是不同的类(假设它们实际上在做不同的事情)。这是因为您实际上是在为每个页面创建 Page 的子类,然后用您的特定行为覆盖默认逻辑。所以每组行为(每个“页面类型”)都是一个不同的类。

于 2009-03-29T23:05:50.150 回答
-1

对于许多 ASPX 页面,使用与“代码隐藏”相同的类实际上有点常见。如果您发现自己在基页类及其关联的 ASPX 文件之间进行了大量的一对一操作,那么坚持使用默认模型是有意义的。但是,如果这对您的应用程序没有意义,那么没有什么可以阻止您将所有 ASPX Inherits属性指向同一个类。

当然,与任何事情一样,最好在打破规则之前先了解规则。普通的 WebForms 模型确实适合大多数用例,尤其是对于 ASP.NET WebForms 平台的初学者或中级开发人员。因此,在开始更改内容之前,请确保您足够了解自己正在进入的内容:)

于 2009-03-29T23:08:18.273 回答