[英]Override strongly typed @page masterpagefile
我正在使用使用母版頁和嵌套母版頁的第三方asp.net應用程序。 我需要為每個頁面(.aspx)動態設置母版頁文件。 默認情況下,應用程序在每個頁面的強類型@Page指令中設置母版頁文件。 我不想更改每頁(超過50頁)上的強類型指令,因為我很懶,並且希望將與將來升級的沖突降到最低。
我的解決方案是使用基本母版頁類並重寫OnPreInt事件,如下所示:
protected override void OnPreInit(EventArgs e)
{
this.MasterPageFile = "~/MasterPages/MyMaster.master";
}
一切正常。 我的問題是:這是一個壞主意,為什么? 這似乎太容易讓人難以置信。
謝謝。
它使代碼/邏輯更加復雜。 例如,可能在您之后繼續從事該項目的其他人可能對快速了解該項目有疑問。 恕我直言
這應該沒有問題。 直到OnPreInit
之后, OnPreInit
才應用於控件集合。 我看到的唯一可能的問題是
1)您的開發人員必須記住這種切換的發生(技術債務)
2)每次請求頁面時,您都必須加載兩個MasterPage類(性能問題)
這是一個非常好的主意。 母版頁的一半是您可以做到的。
關於它們的一個煩人的事情是,您不能讓它們開始引用不存在的文件(這將使您在始終以編程方式決定主文件時更加清楚),因此,如果我要始終設置它是一個新的東西,我希望它以一個頁面開頭,頁面上僅顯示“虛擬母版頁,這將從程序上移開”,因此很顯然,任何人在跟蹤該頁面所使用的母版頁時都會發生這種情況。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.