我们有一个由数百个页面组成的现有经典 ASP 内部网。它的目录结构是这样的……
/root
app_1
app_2
...
img
js
style
显然 app_1 等在实际目录结构中有更好的名称。
尽管许多应用程序具有不同的行为,但它们都是同一个 Intranet 的一部分,因此通过 /style 包含样式表、通过 /img 包含图像和通过 /js 包含客户端脚本,它们具有共同的外观和感觉。
当我想在 ASP.NET 中添加 Intranet 应用程序时,麻烦(至少对我来说)就来了。
最终,我想要这样的结构:
/root
app_1
app_2
dotnetapp_1
dotnetapp_2
...
img
js
style
在我看来,ASP.NET“应用程序”喜欢将自己与周围的一切分开(这可能只是我对它们的理解)。您在 Visual Studio 中创建了一个新的“项目”,就好像您在我想要使用的实际根目录之下有一个新的“根目录”。就像这个新应用程序是一个独立的东西,有自己的图像和风格等等。但是,我希望它成为现有 Intranet 的子部分。
最终,我希望能够使我的整个经典 ASP 内部网成为“根”,并拥有仍然可以访问 /style 和 /img 的 ASP.NET “子应用程序”,我想对于 ASP.NET,我将拥有 /masterpages .
我以前尝试过这个,但是当我将现有的 Intranet 根目录设置为 ASP.NET 项目根目录(通过 File->Open->网站)。我很乐意使用 VS 2008 SP1(我目前使用出色的Notepad++)编辑我现有的经典 ASP 内部网,因为我想更多地使用 VS,但我想这不是绝对必要的。
我还尝试将每个新的 ASP.NET 应用程序单独视为一个应用程序,有效地将 /dotnetapp_1 目录作为应用程序的“根”目录(同样,通过 VS2008 中的文件->打开->网站)。但是,当我尝试引用 /masterpages 时,VS 会抱怨,因为它“属于另一个应用程序”。我想我通过在每个“指向”根 /masterpages 的 ASP.NET 目录中添加一个虚拟目录来解决它,但我不确定 VS 在我这样做时是否能够愉快地提供所见即所得的编辑,而不是制作副本我添加到 Intranet 的每个 ASP.NET 应用程序中的母版页。
我也很可能会访问 .NET MVC 框架,因此请在考虑到该框架的情况下提供任何答案。我希望“项目”对 MVC 来说不是很重要,而只是一堆文件,它们创建了一个对整体有贡献的应用程序(即 Intranet)。
所以,问题是:如何最好地将 ASP.NET 应用程序添加到现有的经典 ASP 内部网(我不关心经典 ASP 和 ASP.NET 之间会话共享的技术细节,只关心目录的结构布局和项目),并能够在 Visual Studio 2008 SP1 中编辑这些单独的应用程序,并且通过通用的 Intranet 外观让这些应用程序彼此“相关”*?
- 请不要只发布“使用 MasterPages”的答案。我很欣赏 MasterPages 是 .NET 在同一应用程序中的相关页面之间共享样式(并且更有可能)的方法。我明白了。我正在寻找的是尽可能顺利地将 ASP.NET 应用程序添加到现有 Intranet 的最佳方法,这使得编辑每个应用程序变得简单,并且每个应用程序都可以共享(如果可能的话)一个 Intranet 通用样式。