2009-12-22 28 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

我真的不认为以这种方式使用用户控件是一个好主意。如果您需要在单独的库中使用它们,则应将它们转换为服务器控件。