我正在訪問來自Web用戶控件的MasterPage公共對象,爲此,我必須引用WUC中的母版頁,並且由於我要在MasterPage中使用該WUC以及我必須從MasterPage中引用WUC。 .Net告訴我,這是一個循環引用,它是不允許的。從該網頁中包含的WebUserControl引用MasterPage
我的問題是:如果我在同一個MasterPage上使用它,我可以從Web用戶控件訪問MasterPage對象嗎?
讓我們一步一步:
首先,我對母版命名空間和此對象聲明:
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" %>
然後,使用我創建的命名空間訪問它
public MyNamespace.Navigator Navigator { get; set; }
protected void Page_Load(object sender, EventArgs e)
{
Navigator = ((MyMPNamespace.SiteMaster)this.Page.Master).Navi;
}
這樣做,它可以在任何.aspx頁面上工作。但是現在我想將WUC添加到MasterPage中,並且我發現我不能這麼做,因爲.Net說有一個循環引用(並且是真的,但不應該是一個問題)。
我知道這樣做的其他方式,比如動態加載WUC(從未嘗試過),或者從MasterPage訪問WUC並從那裏設置WUC屬性。我想知道的是,如果有一種方法可以參考,因爲我喜歡WUC能夠訪問MasterPage並且100%獨立的想法,它知道要顯示什麼等,而不必稱之爲在所有。
馬克,感謝您的時間。 1:.Net版本是4 | 2:Im使用Web應用程序。 | 3:用戶控件擁有自己的文件。 |我通常使用設計器來添加WUC,但是我手動添加了masterPage參考。 –