2010-02-17 38 views
2

我構建了一個可部署的母版頁到一個DLL中,並在多個ASP.NET Web應用程序中使用虛擬路徑提供程序引用它。我遇到的問題是這真的混淆了我的aspx頁面的源視圖。主頁面和虛擬路徑提供者的問題

這裏面每一個實際上attatches母版的每個內容頁我的aspx.cs頁面代碼,但正如我所說,現在,我的<asp:Content>標籤變得很困惑,我不能CTRL K + CTRL + d我的內容頁面,它會在所有事件上拋出驗證錯誤。幫幫我!

protected override void OnPreInit(EventArgs e) 
     { 
      MasterPageFile = MasterPageVirtualPathProvider.MasterPageFileLocation; 
      base.OnPreInit(e); 
     } 

回答

2

爲了獲得對共享MP的設計時支持,您需要爲VS提供標記以便使用。

您可以通過複製MP中的標記文件來消除項目,刪除代碼隱藏屬性並刪除代碼隱藏文件或添加帶有空白代碼隱藏的鏈接副本。

現在將您的內容頁面的主頁面設置爲您剛剛創建的存根,並且您應該有設計時支持。

您的VPP應該在運行時從嵌入標記進行渲染。

不是最優的,但如果你想要設計時支持,我認爲這是唯一的方法。

+0

因此,我應該在我的內容頁面中設置MasterPageFile屬性來表示「〜/ MasterPages/Blank.master」,並將正確的內容佔位符添加到Blank.master?然後,當頁面實際加載時,它會覆蓋MasterPageFile屬性到頁面init上的我的VPP主頁面? – chrisjlong 2010-02-18 02:32:49

+0

@chrisjlong​​,好的,讓我再回答這個問題。 – 2010-02-18 03:16:54

+0

@chrisjlong​​,也許'存根'是誤導。標記需要完整。你可以在保留邏輯的同時修改標記。 – 2010-02-18 03:28:25