3
我正在尋找一種方法來動態加載母版頁,以獲得ContentPlaceHolders中的一個集合。在母版頁中查找ContentPlaceHolders
我不希望在我能訪問它的控件之前不必加載頁面對象來分配母版頁,但如果這是我將很樂意使用它的唯一方法。這是我希望它的工作方式:
Page page = new Page();
page.MasterPageFile = "~/home.master";
foreach (Control control in page.Master.Controls)
{
if (control.GetType() == typeof(ContentPlaceHolder))
{
// add placeholder id to collection
}
}
但page.Master
拋出一個空引用異常。它似乎只是在頁面生命週期中創建實際頁面時才加載。
我甚至想過在Page_Init()中動態改變當前頁面的MasterPageFile,讀取所有ContentPlaceHolders,然後指定原始的MasterPageFile,但這太可怕了!
有沒有辦法將主頁面加載到獨立於實際頁面的內存中,以便我可以訪問它的屬性?
我的最終解決方案可能會涉及解析ContentPlaceHolders的母版頁內容,而不是那麼優雅,但可能會更快一些。
任何人都能夠幫助嗎?非常感謝。
優秀的,這正是我試圖做的,在一個更優雅的方式。謝謝! – 2010-09-24 17:02:48
@GarryM,我花了一些時間,稍微清理一下代碼。 – 2010-09-24 21:44:37