2009-12-22 32 views
0

我有一個ASP.Net Web應用程序,我想用作其他Web應用程序中的可重用用戶控件庫。可重複使用的ASP.NET用戶控制庫:虛擬路徑提供程序還是ascx/aspx副本?

一個對於這個問題的解決方案是使用什麼斯科特·格思裏已經說明如下:

http://weblogs.asp.net/scottgu/archive/2005/08/28/423888.aspx

即在使用Web應用程序複製的ascx/ASPX文件(沒有他們的後臺代碼)控制庫。

我實際上看到了另一個解決方案:在用戶控件庫中嵌入ascx/aspx,然後使用自定義虛擬路徑提供程序來獲取它們。

有誰知道哪種解決方案最好?

從部署的角度來看,虛擬路徑提供者似乎更好。 但是'ascx/aspx copy'解決方案更容易實現(不需要創建自定義虛擬路徑提供程序)。

回答

1

我真的不喜歡斯科特的解決方案。我認爲這是不正常的,並且創造不必要的開銷。我也看到了類似的行動,它只是不適合我。

我也有相同的要求,你描述和我使用虛擬路徑提供程序選項。通過這種方式,我可以在Web應用程序之間輕鬆地重用所有用戶控件,而無需工作。

的虛擬路徑提供有幾個問題,但:

  • 如果ASCX文件有任何服務器標籤(在JavaScript或任何其他地方也如此),導致一個問題,你會得到一個運行時間錯誤是沒有用的。
  • 每次更改ascx標記或更改自身文件中存在的Javascript以查看結果時,您都必須重新構建應用程序。如果您嘗試更改現有控件的設計,那麼這可能是一個真正的痛苦。

我用的溶液,作爲本文中描述和它的工作非常好:

http://www.codeproject.com/KB/user-controls/EmbeddedUserControl.aspx

我希望幫助...

1

我就遇到了這個同樣的情況几几周前,我無法讓斯科特的解決方案工作。我改用自定義服務器控件並將它們放在它們自己的類庫中。

1

我真的不認爲以這種方式使用用戶控件是一個好主意。如果您需要在單獨的庫中使用它們,則應將它們轉換爲服務器控件。