我已经回到asp.net网络表单,我对控件有疑问。 当我以声明方式添加控件时(例如,通过从工具箱中拖放控件),例如将按钮拖放到aspx页面上,我期望发生的是在designer.cs文件中声明和实例化按钮对象 相反,我能找到的只是
protected global::System.Web.UI.WebControls.Button ButtonTest;
但我无处可找到创建新按钮对象的代码并将其分配给ButtonTest。有人知道这种情况发生在何时何地?
答案 0 :(得分:4)
它曾经沿着你描述的方向工作,回到.NET 1.1天。部分类的引入允许简化该方法,因此您通常不必直接与生成的代码交互。
如果您想确切了解框架正在做什么:标记被编译成一个部分类,其中包含页面上对象的声明,以及对构造函数的调用等。
您无法从Visual Studio轻松查看自动生成的代码。要查看它,请为项目启用调试并查看:
C:\ Windows \ Microsoft.NET \ Framework \ v4.0.30319 \ Temporary ASP.NET Files \
编译文件的源代码应该在那里的一个子目录中。
更简单的是,如果在页面中创建一个小的编译错误,然后尝试在浏览器中查看它,您应该会在错误页面的底部看到一个链接,让您查看“编译源”。
答案 1 :(得分:2)
整个事情有一个复杂的生命周期,本文解释了什么时候以及以什么顺序完成。 http://msdn.microsoft.com/en-us/library/ms178472.aspx