2011-10-17 65 views

回答

0

通常,用戶控件被設計爲在單個項目中使用。這是因爲用戶控件包含兩部分 - 標記(ascx)文件和代碼隱藏。如果將項目編譯到庫中,則代碼隱藏類將被封裝在dll中,而不是ascx部分。標記(ascx)包含實際的控制樹,因此無法使用用戶控制。因此,共享用戶控件的解決方案之一是將用戶控件的代碼編譯到庫中,並將ascx文件複製到目標項目中。

但更好的解決方案是將用戶控件的標記(ascx)打包爲庫項目的嵌入資源,然後使用自定義虛擬路徑提供程序從資源加載它。請參閱描述此技術的this code-project article

+0

有沒有更簡單的解決方案? ( – user603007

+0

@ user603007,最簡單的解決方案是將用戶控制文件(代碼和標記)複製到不可維護的新項目中。更易於維護的方法是將代碼打包,然後通過直接複製或共享文件夾(或共享文件夾在VSS等源代碼控制系統中),然而,最好的方法是將代碼和標記包裝在一起! – VinayC

0

一個辦法,我這樣做是爲了有一個 1. Web應用程序項目,共享用戶控件, 2.然後由需要使用控件 3.每個應用程序/網站使用其他的Web應用程序項目中引用控件創建一個指向ascx位置的virt目錄,以便它們可以包含在您的頁面中

當部署到生產當然有這種變化..取決於您的部署首選項。 是的,我同意一般情況下,如果你想重新使用,那麼應該使用服務器控件/類庫,但在usercontrols中實現複雜的UI和共享如上所述通常更容易和更快。 從不同的現有Web應用程序重用用戶控件的時候..剛剛創建的virt目錄指向ASCX位置和參考應用程序的DLL(或只是在你的BIN下降)

+0

好的。VinayC描述的幾乎相同,但是13分鐘之前)) – Jack0fshad0ws

相關問題