3

我们有两个asp.net 站点(基于episerver)。
使用 Telerik Asp.net 控件。
我们有一些我们希望在两个站点中都可用的功能。
现在,其中一个站点使用 webparts/usercontrols,另一个使用 usercontrols。

有没有办法在这些站点之间共享功能?
我想要的是能够在站点之间共享用户控件。

4

3 回答 3

3

由于您在谈论用户控件,我假设您也有 .ascx 文件,这些文件是用户控件的一部分,这使得这很棘手。

我想理想的解决方案是将所有内容都移到服务器控件中,这样您就可以引用程序集,但是如果您从使用 .ascx 文件的其他控件继承,那么您有点坚持使用它们。

处理它的一种方法是使用 Visual Studio 中的文件链接功能(添加现有文件,单击向下箭头,选择链接选项)在同一解决方案中的项目之间共享同一物理文件。这并不理想,因为您必须确保在部署之前将 ascx 文件复制到两个站点(我之前使用构建后脚本完成了此操作),但仍有很多内容可能非常脆弱。

另一个在技术上更复杂但可能是“更好”的处理方式的选项是使用虚拟路径提供程序为您完成工作。 是一篇关于使用虚拟路径提供程序来做你想做的事情的文章。

于 2010-05-25T15:17:43.353 回答
2

启动一个新的类库项目,在您的两个站点项目中引用该项目,然后将公共控件和代码提取到库项目中。

于 2010-05-25T14:55:10.603 回答
0

如前所述,您可以将文件放在实时环境中的 VPP 目录中,这样只需将 ASCX 文件复制到一个文件夹即可进行两个站点代码前端更新。不过,代码隐藏更新需要为两个站点构建和覆盖 DLL。

如果您在开发环境中使用 SVN,您还可以从其中一个项目中设置一个 svn:external 链接文件夹,这样就只有代码和它的修订历史记录在一个存储库中。

于 2010-05-27T16:57:35.317 回答