将区域添加到混合MVC-Webforms应用程序

时间:2011-08-31 23:03:28

标签: asp.net asp.net-mvc-3 webforms

我正在为传统的ASP.NET网站项目添加MVC支持。我为Controllers添加了一个单独的类库,而Views位于旧版应用中。到目前为止效果很好,但我想利用Areas。由于Areas封装了ControllersViewsModels,如果我添加一个新的类项目来托管Areas,那么它是否适用于Views在这个项目中?

此外,Areas需要一个web.config文件,我假设我无法将web.config添加到类库区域项目中。

这甚至可能吗?

2 个答案:

答案 0 :(得分:0)

我认为View文件不能放在MVC3项目之外(它必须知道在哪里找到文件)。

但是,您可以为Area路径指定一个命名空间,指定搜索控制器的位置(因此您的控制器可以保留在单独的项目中)。

context.MapRoute("routename",
  "{controller}/{action}",
  new { controller="Home",action="Index"},
  null,
  new[] {"ControllerProject.NamespaceTo.Controllers"}
);

答案 1 :(得分:0)

您需要确保在项目文件中引用正确的ProjectTypeGuids。

http://www.kevinrohrbaugh.com/blog/2009/7/17/demystifying-the-aspnet-mvc-project-type.html

请确保您也为MVC添加了正确的引用。完成所有配置后,可视化工作室应允许您右键单击项目并添加具有支持结构的区域。