我们有一个多个Web项目的解决方案,并且有一些页面应该存在于其中的几个.所以我们需要一些共享的项目,它包含aspx文件,可以被其他web项目引用.
现在有几个实现:
一个实现described by ScottGu涉及构建共享项目,而不是将输出aspx复制到主机项目中,并引用aspx的dll.这种方法的缺点是,如果apsx被修改,则必须重新开始.
基于David Ebbo’s post的另一个选择是将aspx转换为可以引用为自定义控件的ascx,并将这些custom-control-aspx-es包含在某些占位符页面的主机项目中.但我的关注是:所有apsx页面都可以转换成ascx吗?我的意思是在用户控件中没有Page.LoadComplete事件.
另一个选择是使用映射到共享Web项目的虚拟目录,如Microsoft KB article所述.此方法的问题是共享的aspx-es必须在预定义的目录(即虚拟目录)中.
如果虚拟目录的名称与物理目录重叠,虚拟将覆盖它,并且不会使用后者的页面.
是否可能将这两者合并在一起?
有什么想法吗?提前致谢
附:如何调试共享页面?
解决方法
我通过使包含.ascx控件的共享类库解决了这个问题.从.aspx页面转换到.ascx控件时,没有发现真正的困难.发现ScottGu的这个样本真的很简单,好起点.
http://webproject.scottgu.com/CSharp/usercontrols/usercontrols.aspx.