母版页无法识别用户控件中的变量

时间:2014-08-24 08:38:07

标签: c# asp.net user-controls

我有以下几页:

用户控制

...
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>

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

由于

1 个答案:

答案 0 :(得分:0)

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

内容页

使用属性定义接口,通过将母版页属性强制转换为内容页面上的接口,在主页面中实现该接口并访问接口属性。 请参阅以下示例。

<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")
{
}