如何从另一个项目加载用户控件?

时间:2012-12-05 12:26:19

标签: c# asp.net user-controls

  

可能重复:
  Using User Controls from Other Projects in ASP

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

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

我想避免每次更改其中一个用户控件时重建Project B

1 个答案:

答案 0 :(得分:1)

我用这样做,使用IIS,ASP.NET 4.0:

  1. 放置控件myControl.ascx我希望A在应用程序A的子文件夹中共享名为 SharedControls
  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的页面和控件的代码隐藏中可用
  6. 根据您的页面和控件是代码文件/代码隐藏,您可能必须在web.config编译元素中设置batch =“false”,以避免多编译冲突:

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

    希望这会有所帮助