代码之家  ›  专栏  ›  技术社区  ›  Diskdrive

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

  •  2
  • Diskdrive  · 技术社区  · 14 年前

    假设我有一个带有母版页和ASPX页的网站。

    在我的ASPX页面中,我用mastertype标记指向我的masterpage。

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

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

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

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

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

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

    事先谢谢。

    1 回复  |  直到 14 年前
        1
  •  2
  •   Rex M    14 年前

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