2011-04-15 112 views
2

是否可以在不同的Web應用程序之間共享Web控件(.ASCX文件)?在不同的Web應用程序之間共享ASCX控件

有問題的文件是另一個Web項目的一部分。我試圖編輯web.config以引用ascx文件,但是我遇到語法錯誤,它告訴我Iam不允許在此路徑中使用「..」。

<pages> 
    <controls> 
     <add tagPrefix="my" tagName="IntegerInput" src="~/../MyCommonProject/controls/basic/IntegerInput.ascx" /> 

我想解決的基本問題是我們有兩個具有許多共同功能的應用程序,特別是Web控件。

簡而言之,我們希望在一個單獨的項目中提取這兩個項目的所有常用功能,因此我們在開發中沒有重複的代碼,但是這兩個項目應該能夠作爲完全不同的應用程序單獨部署,每個得到他們自己的這些控件的副本。

我們如何解決這個問題?

回答

2

我發現這個問題的兩個解決方案:

  • 創建一個包含ascx'es和代碼的項目。該項目的源文件與使用ascx'es的其他項目共享(即xcopies)。 (blog

  • 您的用戶控件創建庫,添加現有ASCX的和代碼隱藏。在Web項目中引用此庫。缺點:您使用設計時功能,這意味着:在設計模式中看不到ascx。 (blog

第三種解決方案,如通過@Forgotten分號建議,將轉換爲服務器控件。這種方法也提高了設計師的表現

3

您必須轉換用戶控件到自定義服務器控件。

MSDN有一篇文章here

+0

這對我們來說是不容置疑的,因爲控件太多了 – codymanix 2011-04-15 15:29:22

2

還有另一種可能的解決方案:

保持控制在一個網站一個目錄,你決定是「主」之一;然後在指向相同物理目錄的其他站點中創建一個虛擬目錄。

這真的只爲ascx文件的工作,而不是他們的代碼屁股。

相關問題