Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/37.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net C#ASPX:如何获取父页面';控件中的继承属性?_Asp.net_User Controls_Properties_Inherited - Fatal编程技术网

Asp.net C#ASPX:如何获取父页面';控件中的继承属性?

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 母版页不是“继承的”,这意味着无法从页面类(或控

我有一个aspx页面,它继承了一个具有受保护属性的母版页。像这样:

母版页 { 受保护的字符串propX。。 }

MyPage:母版页

---myControl:UserControl

在myControl代码中,我想访问propX

有什么想法吗


谢谢

您可以更改字符串的访问修饰符。可能将其设置为内部。

您确定要从母版页继承吗?添加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。如果它们在同一个程序集中,并且内部不工作,那么肯定还有其他问题-也许完整的代码示例会有所帮助。