为什么aspx页面的部分类背后的代码?
答案 0 :(得分:12)
我会引用您的MSDN Page(ASP.NET页面类概述)。
编译页面时,ASP.NET 生成基于的部分类 .aspx文件;这个班是偏袒的 代码隐藏类文件的类。 生成的部分类文件 包含页面的声明 控制。这个部分类启用 你的代码隐藏文件用作 没有完整课程的一部分 要求您声明控件 明确。
见此图表:
alt text http://img30.imageshack.us/img30/7692/msdnchart.gif
这样你就有一个包含逻辑的类和一个包含设计器东西的类。在编译时,它是作为一个整体生成的。
答案 1 :(得分:4)
因为该类的其他部分(设计师的东西)对开发人员隐藏了
例如,而不是这个
public MyBasePage : System.Web.UI.Page
{
...
protected System.Web.UI.Label lblName;
protected void Page_Load(object sender, EventArgs e)
{
}
...
}
ASP.NET在不同的物理文件中创建这些声明,留下这个
public partial class MyBasePage : System.Web.UI.Page
{
...
protected void Page_Load(object sender, EventArgs e)
{
}
...
}
更多信息:
答案 2 :(得分:1)
Partial声明允许您在其他文件中编写代码 - 只需将其放在同一名称空间中并将该类命名为相同,并将它们视为在同一文件中。它非常适合为生成的文件添加功能。我经常使用它来为我的LinqToSql对象添加函数/属性。
答案 3 :(得分:1)
部分文件的另一个原因是处理某些类定义是由工具生成的情况(并且可能在某些时候重新生成),而其余的类是由您实现的。
在这种情况下,不使用分部类会导致代码被覆盖,或者生成过程难以完成其工作(如果它可以完成)。
使用部分类,可以轻松地重新生成生成的代码,而无需触及代码。
另一个很好的例子是在LINQ-to-SQL中使用DataContext类时:真正聪明的东西被生成到一组部分类文件中,你可以在另一个部分类中提供实现 - 用于验证等等,安全地知道再生不会破坏你的工作。
答案 4 :(得分:0)
Aspx.cs使用PARTIAL类,因为在此类中访问的控件(例如TextBox,GridView)在.Aspx文件中声明(即物理上的另一个文件),因此一个类包含控制声明(.aspx文件)和另一个基于业务逻辑的类on .aspx文件上声明的控件。当他们被编译时,被视为整个单一的课程。