我可以在我的标记公开而不是保护中定义控件

时间:2010-04-14 04:09:58

标签: .net asp.net master-pages markup

假设我有一个包含母版页和aspx页的网站。

在我的ASPX页面中,我指向带有MasterType标记的主页。

<%@ MasterType VirtualPath="~/mymasterpage.master" %>

说,我在我的母版页的标记中定义了一个标签。

如果你看一下设计师代码,这个标签应该是这样的。

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

现在在我的内容页面中,我想引用此标签。 如果我输入“Master.label1”,编译器会抱怨由于保护级别而无法访问控件,“因为label1自动定义为”受保护“。

我的问题是,如果我在标记页面中定义控件,是否可以将这些控件设置为公共而不是受保护?我没有看到它的属性。

提前感谢。

1 个答案:

答案 0 :(得分:2)

您可以通过更改设计器代码手动将它们公开,但一般来说这是不正确的设计。它们受到保护的原因在于,任何“了解”您的页面,控件或主类并与之交互的类都应该与该类公开的特定属性和事件进行交互,而不是与控件本身进行交互。