回答
通常,用户控件被设计为在单个项目中使用。这是因为用户控件包含两部分 - 标记(ascx)文件和代码隐藏。如果将项目编译到库中,则代码隐藏类将被封装在dll中,而不是ascx部分。标记(ascx)包含实际的控制树,因此无法使用用户控制。因此,共享用户控件的解决方案之一是将用户控件的代码编译到库中,并将ascx文件复制到目标项目中。
但更好的解决方案是将用户控件的标记(ascx)打包为库项目的嵌入资源,然后使用自定义虚拟路径提供程序从资源加载它。请参阅描述此技术的this code-project article。
有没有更简单的解决方案? ( – user603007
@ user603007,最简单的解决方案是将用户控制文件(代码和标记)复制到不可维护的新项目中。更易于维护的方法是将代码打包,然后通过直接复制或共享文件夹(或共享文件夹在VSS等源代码控制系统中),然而,最好的方法是将代码和标记包装在一起! – VinayC
一个办法,我这样做是为了有一个 1. Web应用程序项目,共享用户控件, 2.然后由需要使用控件 3.每个应用程序/网站使用其他的Web应用程序项目中引用控件创建一个指向ascx位置的virt目录,以便它们可以包含在您的页面中
当部署到生产当然有这种变化..取决于您的部署首选项。 是的,我同意一般情况下,如果你想重新使用,那么应该使用服务器控件/类库,但在usercontrols中实现复杂的UI和共享如上所述通常更容易和更快。 从不同的现有Web应用程序重用用户控件的时候..刚刚创建的virt目录指向ASCX位置和参考应用程序的DLL(或只是在你的BIN下降)
好的。VinayC描述的几乎相同,但是13分钟之前)) – Jack0fshad0ws
- 1. 在一个解决方案中调用来自不同项目的方法
- 2. 从不同的项目中使用的图像解决方案
- 3. 在TeamCity中构建相同解决方案的不同项目
- 4. 同一个项目不同的解决方案符号配置
- 5. 在同一解决方案中包含来自其他项目的JavaScript文件
- 6. 一个项目不能引用同一个解决方案
- 7. 相同的DbContext在解决方案中的不同项目下行为不同
- 8. 在同一解决方案中的不同项目中获取Webservice WSDL
- 9. 在同一解决方案中的不同项目中存储资源文件
- 10. 同一解决方案中的不同项目之间的引用(Visual Studio 2012)
- 11. 确保解决方案中的项目来自同一个TFS分支
- 12. 是否可以在同一解决方案中引用来自另一个项目的VS2005网站项目?
- 13. 在解决方案中测试项目
- 14. 键在一个项目中无效错误,但在同一解决方案中的不同项目中工作
- 15. 如何在Visual Studio 2010的同一解决方案中使用来自另一个项目的类?
- 16. 在不同团队项目中构建解决方案
- 17. 如何在同一解决方案的不同项目中使用相同的obj文件
- 18. 从同一解决方案中的不同项目访问EF ConnectionString MVC
- 19. 在同一解决方案中运行winforms项目中的arduino项目
- 20. 同一解决方案中的项目究竟有多相关?
- 21. App.config与同一解决方案中的许多项目问题
- 22. 同一解决方案中的MVC和Web API项目
- 23. 将解决方案分解成不同的项目
- 24. 在另一个项目中使用同一个解决方案但不同配置的一个类
- 25. 解决方案VS2010内不同项目中的装配清单
- 26. 在同一解决方案中使用多个项目的头文件
- 27. 使用App.xaml.cs参考另一个项目中存在的相同解决方案?
- 28. 在同一解决方案中的控制台项目和winforms项目
- 29. 如何在同一解决方案中使用调试步入Web应用程序中的测试项目类?
- 30. Visual Studio 2010 DataTips为什么在项目/解决方案中看起来不同?
谷歌“asp.net reuseing用户控制” –
谷歌还工程返回此页面的链接... –