2011-04-15 107 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文件的工作,而不是他们的代码屁股。

相关问题