母版页不能识别来自用户控件的变量

本文关键字:控件 变量 用户 不能 识别 母版页 | 更新日期: 2023-09-27 18:19:17

我有以下页面:

用户控制

...
public partial class IDowner : System.Web.UI.UserControl
{
    public string owner;
    protected void Page_Load(object sender, EventArgs e)
    {
      //do stuff           
    }

主页

<body runat="server">
<form id="form1" runat="server"> 
<uc3:IDowner id="IDuser1" runat="server" />
<%if (owner != "test") 
          { //do stuff 
 } %>
</form>
</body>
内容页

<body runat="server">
<form id="form1" runat="server"> 
<%if (owner != "test") 
          { //do stuff } %>
</form>
</body>

我的问题是母版页不识别变量(所有者)。它在当前的上下文中找不到它。而Content Page则在当前上下文中找到它。怎么了?

谢谢

母版页不能识别来自用户控件的变量

您只能通过类实例访问类成员,因此您的代码应该

for content page:定义带有属性的接口,在母版页中实现该接口,并通过将母版页属性类型转换为内容页上的接口来访问接口属性。请看下面的例子。

<body runat="server">
<form id="form1" runat="server"> 
<uc3:IDowner id="IDuser1" runat="server" />
<%if (IDuser1.owner != "test") 
          { //do stuff 
 } %>
</form>
</body>
public interface IMyMaster
{
string owner { get; }
}
public class YourMasterPage : MasterPage, IMyMaster
{
//enter code here
    public string owner
    {
        get
        {
            this.IDuser1.owner;
        }
    }
}
在ASPX

var oIMyInterface=this.MasterPage as IMyInterface;
if(oIMyInterface!=null && oIMyInterface.owner!="test")
{
}