this.Master.FindControl("SideBarBox") as ContentPlaceHolder
每次呼叫皆透過反射搜尋控件樹,高流量下極度耗效能。
// MasterPage.master.cs
public static ContentPlaceHolder sideBarBox;
protected void Page_Init(object sender, EventArgs e)
{
sideBarBox = SideBarBox; // 指派實例參考
}
若在母版頁 Page_Load 指派,子頁 Page_Load 讀取時尚為 null。
public partial class ErrorPage : Page
{
protected void Page_Load(object sender, EventArgs e)
{
FE_Error.InitErrorPage(ErrorBox, MasterPage.sideBarBox); // 直接強型別存取
}
}
母版頁中 ContentPlaceHolder 可巢狀,同樣可暴露內層參考,靈活佈局。
此模式將母版頁視為強型別服務提供者,消除字串鍵值與反射,大幅提升效能與可維護性。