Asp.net mvc 3 如何利用MVC3多站点的共性来简化VisualStudio中的开发过程?

Asp.net mvc 3 如何利用MVC3多站点的共性来简化VisualStudio中的开发过程?,asp.net-mvc-3,visual-studio-2010,Asp.net Mvc 3,Visual Studio 2010,我正在使用Visual Studio开发几个MVC3网站,它们之间的唯一区别是: 两个图像(在~/Content/images中) 根目录中的web.config 我已经将我的模型分离到一个单独的项目中,但是视图和控制器的代码对于站点都是重复的 我怎样才能为这个做一个1..* 谢谢。您可以将控制器放入一个单独的项目中,没有问题。使用您的模型或在单独的项目中 您需要的视图更复杂,我从未尝试过,但您可以将它们视为来自共享源的链接项。如果唯一的区别是品牌(图像、样式等),您可以拥有一个带有一些设置

我正在使用Visual Studio开发几个MVC3网站,它们之间的唯一区别是:

  • 两个图像(在~/Content/images中)
  • 根目录中的web.config
我已经将我的模型分离到一个单独的项目中,但是视图和控制器的代码对于站点都是重复的

我怎样才能为这个做一个1..*


谢谢。

您可以将控制器放入一个单独的项目中,没有问题。使用您的模型或在单独的项目中


您需要的视图更复杂,我从未尝试过,但您可以将它们视为来自共享源的链接项。

如果唯一的区别是品牌(图像、样式等),您可以拥有一个带有一些设置的单个项目

例如,如果每个网站的徽标不同,则可以通过项目属性中的设置选项卡或web.config的
部分添加
LogoUrl
设置

然后在您的视图中,引用该设置,而不是硬编码路径:

<img src="@Settings.Default.LogoUrl" alt="Logo" />

由于所有站点都基于相同的构建,我将公共文件移到了根目录下,并为每个站点创建了一个单独的文件夹。然后,通过一个简单的批处理文件,我就能够完成我所需要的:

for /f %%X in (websitelist.txt) do rd /Q /S ..\%%X
for /f %%X in (websitelist.txt) do echo D | xcopy /E ..\mybasewebsite.com ..\%%X
for /f %%X in (websitelist.txt) do copy %%X\*.* ..\%%X /Y

如果尝试使用构建脚本进行构建,我明白您的意思,但这是不可行的。我使用msbuild脚本进行构建。您可以添加多个解决方案配置和web.config转换以应用不同的设置。是的,这就是我将视图和控制器耦合在一起的原因。我相信已经有一些关于在另一个目录中链接目录的讨论。Windows仅创建链接快捷方式。我认为在*nix的土地上,有一种方法可以别名文件夹。如果这可以通过Windows来实现,那就可以了。。。思想?