1

可能重复:
在 ASP 中使用来自其他项目的用户控件

我有以下情况:一个解决方案有两个项目,A 和 B。其中一个,A,有一个UserControl.

现在我构建 A 并在 B 中添加对 A 的引用。如何在 B 中加载用户控件并访问该用户控件中的控件?

B每次更改用户控件之一时,我都想避免重新构建项目?

4

1 回答 1

1

我曾经像这样继续使用 IIS,ASP.NET 4.0 :

  1. 将我希望 A 共享的控件 myControl.ascx 放在名为SharedControls的应用程序 A 的子文件夹中
  2. 在 IIS 中,将虚拟目录(没有应用程序,但具有执行脚本权限)添加到 B,“ASharedControls”,指向 A 的SharedControls(引用此子目录,您将避免 B 在其层次结构中包含 A 的 web.config,这将使 B碰撞)
  3. 在 B 中,添加对 A 的项目引用
  4. 在 B 中,您现在可以在标记中声明和使用您的控件 <%@ Register TagPrefix="uc1" TagName="myControl" Src="~/ASharedControls/myControl.ascx" %>(VS 将警告为找不到路径,但它应该在 IIS 中工作)
  5. 然后 myControl 也应该在 B 的页面和控件的代码隐藏中可用

根据您的页面和控件是代码文件/代码隐藏,您可能必须在 web.config 编译元素中设置 batch="false" 以避免多重编译冲突:

<compilation defaultLanguage="c#" debug="true" batch="false" targetFramework="4.0">

希望这会有所帮助

于 2012-12-05T13:26:45.953 回答