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
。
您可以打开文件并查看其内容。
只是好奇!
我想知道,究竟发生了什么,使得任何在 .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
。
您可以打开文件并查看其内容。