Asp.Net 中的文件隐藏代码如何访问服务器端控件?

How server side controls are accessible in code behind files in Asp.Net?

只是好奇!

我想知道,究竟发生了什么,使得任何在 .aspx 页面中定义并具有 "runat" 属性的控件都可以在代码隐藏文件中访问?

.aspx 页面:

页面后面的代码: lbl.Text = "This is a label";

如果有人可以分享一些关于这里实际发生的信息,是什么让我的标签在添加 "runat" 属性后可以在代码隐藏中访问?

每次更改 aspx 文件时,Visual Studio 都会重新生成一个名为 {YourPageName}.aspx.designer.cs 的文件,并声明带有属性的控件runat="server"里面.

因此,如果您的 aspx 文件中有这样的标签控件:

然后在您的 .aspx.designer.cs 文件中声明了一个像这样自动生成的变量:

protected global::System.Web.UI.WebControls.Label lbl;

由于您的页面被声明为 partial class,您可以在代码隐藏文件中访问 lbl

您可以打开文件并查看其内容。