C# 从包含在该母版页中的WebUserControl引用母版页

C# 从包含在该母版页中的WebUserControl引用母版页,c#,.net,asp.net,C#,.net,Asp.net,我正在从Web用户控件访问母版页公共对象,为此,我必须在WUC中引用母版页,因为我也将在母版页中使用该WUC,所以我必须从母版页引用WUC。Net告诉我这是一个循环引用,是不允许的 我的问题是:如果我也在同一母版页上使用母版页对象,我可以从Web用户控件访问它吗? 让我们一步一步来: 首先,我为母版页创建了一个名称空间,并声明了此对象: namespace MyMPNamespace { public partial class SiteMaster : System.Web.UI.Master

我正在从Web用户控件访问母版页公共对象,为此,我必须在WUC中引用母版页,因为我也将在母版页中使用该WUC,所以我必须从母版页引用WUC。Net告诉我这是一个循环引用,是不允许的

我的问题是:如果我也在同一母版页上使用母版页对象,我可以从Web用户控件访问它吗?

让我们一步一步来:

首先,我为母版页创建了一个名称空间,并声明了此对象:

namespace MyMPNamespace {
public partial class SiteMaster : System.Web.UI.MasterPage
{
    public MyNamespace.Navigator Navi {get; set;}
    public MyNamespace.user User { get; set; }

    protected void Page_Init(object sender, EventArgs e) {
        Navi = new MyNamespace.Navigator();
        User = new MyNamespace.user(true, true);
    }
...
} }
然后我可以从Web用户控件访问它,首先,引用母版页:

<%@ Register TagPrefix="mp" TagName="MyMP" Src="~/Site.master" %>
完成后,它可以在任何.aspx页面上运行。但是现在我想将WUC添加到母版页,我发现我不能,因为.Net说有一个循环引用(这是真的,但应该不会有问题)


我知道其他方法,比如动态加载WUC(我没有尝试过),或者从母版页访问WUC并从母版页设置WUC属性(这很有效)。我想知道的是,如果有一种方法可以做这个参考,因为我喜欢WUC能够访问母版页并且是100%独立的想法,它知道显示什么等等。根本不需要调用它。

我能够创建一个Web用户控件,将它放在母版页上,然后访问母版页,无循环引用问题。为了回答这个问题,我需要更多的信息:

  • 您使用的是什么版本的.NET
  • 您使用的是网站还是web应用程序
  • 用户控件是否与母版页在同一源文件中创建
  • 如果不是,为什么要使用Site.master将用户控件注册为Src
  • 正在讨论的用户控件是否通过设计器放置在网页和母版上

  • 你好,马克,谢谢你抽出时间。1:.Net版本为4 | 2:Im使用Web应用程序。|3:用户控件有自己的文件5:我通常使用设计器添加WUC,但我手动添加母版页引用。
    public MyNamespace.Navigator Navigator { get; set; }
    
    protected void Page_Load(object sender, EventArgs e)
    {
        Navigator = ((MyMPNamespace.SiteMaster)this.Page.Master).Navi;
    }