如何将使用#include文件的网站升级到Web应用程序

时间:2008-10-20 18:19:42

标签: c# asp.net visual-studio visual-studio-2008

我最近继承了一个相当大的网站。该项目在Visual Studio中设置为Web站点,而不是Web应用程序。出于多种原因,我想将其转换为Web应用程序。

我开始使用Scott Gu的这些说明转换应用程序:Migrating a VS 2005 Web Site Project to VS 2005 Web Application Project

在进行转换时,我发现此网站使用大量#include指令来包含其他.aspx文件。这个问题的主要问题是,目前每个代码隐藏文件都直接从它所包含的页面调用控件(使用它。)。

编译时编译器在内存中动态创建.designer文件的方式似乎允许这种行为。

问题在于,因为我正在将应用程序转换为Web应用程序,所以我正在创建.designer文件的物理版本。现在对包含页面上的控件进行相同的调用(使用此。),不再有效。

我尝试了一些方法来解决这个问题:

首先,我注意到.aspx包含文件没有@Page指令,所以我尝试添加一个。这阻止了应用程序的编译,因为主页面现在有多个@page指令。

其次,我试图将包含的.aspx文件重命名为.inc,但我仍然遇到主页不再能够像以前那样访问控件的问题。

之前有人曾经这样做过,并且在不改变网站整体结构的情况下对如何进行有任何想法?

编辑:我决定暂时不进行转换,因为获得的任何好处都不值得。谢谢你的帮助。

2 个答案:

答案 0 :(得分:1)

  • 您应该将包含的aspx文件转换为类,如果它们在旧情况下用作代码库
  • 您应该将包含html,服务器和/或HTML控件的aspx文件转换为usercontrols(ascx文件)

这应该是一个很好的启动器。稍后您可以根据自己的喜好重构。

希望它有所帮助。

答案 1 :(得分:0)

您需要将#included内容重构为可在主页中使用的类和控件。

ASP.Net将执行#include。