Asp.net C#ASPX:如何获取父页面';控件中的继承属性?
我有一个aspx页面,它继承了一个具有受保护属性的母版页。像这样: 母版页 { 受保护的字符串propX。。 } MyPage:母版页 ---myControl:UserControl 在myControl代码中,我想访问propX 有什么想法吗Asp.net C#ASPX:如何获取父页面';控件中的继承属性?,asp.net,user-controls,properties,inherited,Asp.net,User Controls,Properties,Inherited,我有一个aspx页面,它继承了一个具有受保护属性的母版页。像这样: 母版页 { 受保护的字符串propX。。 } MyPage:母版页 ---myControl:UserControl 在myControl代码中,我想访问propX 有什么想法吗 谢谢 您可以更改字符串的访问修饰符。可能将其设置为内部。您确定要从母版页继承吗?添加MasterPage指令并不意味着它继承了它。通常,aspx页面应直接或间接继承自System.Web.UI.page 母版页不是“继承的”,这意味着无法从页面类(或控
谢谢 您可以更改字符串的访问修饰符。可能将其设置为内部。您确定要从母版页继承吗?添加MasterPage指令并不意味着它继承了它。通常,aspx页面应直接或间接继承自System.Web.UI.page
母版页不是“继承的”,这意味着无法从页面类(或控制类)访问受保护的成员。您最好的选择是将属性公开或内部。可能尝试将
myControl
类的Page
属性强制转换为MyPage
类
字符串值=((MyPage)this.Page).propX
如果要从其他类(如myControl
)访问此属性,则属性propX
的访问修饰符应设置为internal
或public
我假设您已将
myControl
对象放置在MyPage
页面上。对不起,我应该更清楚一些。masterpage只是我创建的一个继承System.Web.UI.Page的类,在masterpage中我进行初始化工作,然后设置MyPage:masterpage。我试了一下你的建议,但是没有用。您将永远无法从UserControl访问受保护的属性。只能从直接从受保护属性继承的类访问受保护属性。内部属性只能由同一程序集/项目中的其他类访问。如果您的UserControl和MasterPage位于不同的程序集/项目中,则您的唯一选项是将属性设置为public。如果它们在同一个程序集中,并且内部不工作,那么肯定还有其他问题-也许完整的代码示例会有所帮助。