【问题标题】:Can I make controls defined in my markup public instead of protected我可以将我的标记中定义的控件公开而不是受保护吗
【发布时间】:2010-04-14 04:09:57
【问题描述】:

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

在我的 ASPX 页面中,我使用 MasterType 标记指向我的母版页。

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

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

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

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

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

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

提前致谢。

【问题讨论】:

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


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 2011-01-13
      • 2021-12-19
      • 1970-01-01
      • 1970-01-01
      • 2015-11-30
      • 1970-01-01
      • 2018-04-21
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多