回答
通常,用戶控件被設計爲在單個項目中使用。這是因爲用戶控件包含兩部分 - 標記(ascx)文件和代碼隱藏。如果將項目編譯到庫中,則代碼隱藏類將被封裝在dll中,而不是ascx部分。標記(ascx)包含實際的控制樹,因此無法使用用戶控制。因此,共享用戶控件的解決方案之一是將用戶控件的代碼編譯到庫中,並將ascx文件複製到目標項目中。
但更好的解決方案是將用戶控件的標記(ascx)打包爲庫項目的嵌入資源,然後使用自定義虛擬路徑提供程序從資源加載它。請參閱描述此技術的this code-project article。
有沒有更簡單的解決方案? ( – user603007
@ user603007,最簡單的解決方案是將用戶控制文件(代碼和標記)複製到不可維護的新項目中。更易於維護的方法是將代碼打包,然後通過直接複製或共享文件夾(或共享文件夾在VSS等源代碼控制系統中),然而,最好的方法是將代碼和標記包裝在一起! – VinayC
一個辦法,我這樣做是爲了有一個 1. Web應用程序項目,共享用戶控件, 2.然後由需要使用控件 3.每個應用程序/網站使用其他的Web應用程序項目中引用控件創建一個指向ascx位置的virt目錄,以便它們可以包含在您的頁面中
當部署到生產當然有這種變化..取決於您的部署首選項。 是的,我同意一般情況下,如果你想重新使用,那麼應該使用服務器控件/類庫,但在usercontrols中實現複雜的UI和共享如上所述通常更容易和更快。 從不同的現有Web應用程序重用用戶控件的時候..剛剛創建的virt目錄指向ASCX位置和參考應用程序的DLL(或只是在你的BIN下降)
好的。VinayC描述的幾乎相同,但是13分鐘之前)) – Jack0fshad0ws
- 1. 在一個解決方案中調用來自不同項目的方法
- 2. 從不同的項目中使用的圖像解決方案
- 3. 在TeamCity中構建相同解決方案的不同項目
- 4. 同一個項目不同的解決方案符號配置
- 5. 在同一解決方案中包含來自其他項目的JavaScript文件
- 6. 一個項目不能引用同一個解決方案
- 7. 相同的DbContext在解決方案中的不同項目下行爲不同
- 8. 在同一解決方案中的不同項目中獲取Webservice WSDL
- 9. 在同一解決方案中的不同項目中存儲資源文件
- 10. 同一解決方案中的不同項目之間的引用(Visual Studio 2012)
- 11. 確保解決方案中的項目來自同一個TFS分支
- 12. 是否可以在同一解決方案中引用來自另一個項目的VS2005網站項目?
- 13. 在解決方案中測試項目
- 14. 鍵在一個項目中無效錯誤,但在同一解決方案中的不同項目中工作
- 15. 如何在Visual Studio 2010的同一解決方案中使用來自另一個項目的類?
- 16. 在不同團隊項目中構建解決方案
- 17. 如何在同一解決方案的不同項目中使用相同的obj文件
- 18. 從同一解決方案中的不同項目訪問EF ConnectionString MVC
- 19. 在同一解決方案中運行winforms項目中的arduino項目
- 20. 同一解決方案中的項目究竟有多相關?
- 21. App.config與同一解決方案中的許多項目問題
- 22. 同一解決方案中的MVC和Web API項目
- 23. 將解決方案分解成不同的項目
- 24. 在另一個項目中使用同一個解決方案但不同配置的一個類
- 25. 解決方案VS2010內不同項目中的裝配清單
- 26. 在同一解決方案中使用多個項目的頭文件
- 27. 使用App.xaml.cs參考另一個項目中存在的相同解決方案?
- 28. 在同一解決方案中的控制檯項目和winforms項目
- 29. 如何在同一解決方案中使用調試步入Web應用程序中的測試項目類?
- 30. Visual Studio 2010 DataTips爲什麼在項目/解決方案中看起來不同?
谷歌「asp.net reuseing用戶控制」 –
谷歌還工程返回此頁面的鏈接... –