MVC项目架构支持模块

时间:2012-01-20 09:29:14

标签: asp.net-mvc asp.net-mvc-3 razor module

我需要我的MVC 3.0项目来支持模块。按模块我的意思是有独立的库,其中包括模型视图和控制器。其原因是具有可重复使用的应用程序部分,可供多个应用程序使用。

对我来说最好的方法是将这些模块作为mvc应用程序 - 使用resharper,mvc visual studio addons工作。我的意思是智能感知,控制器导航,视图和控制器创建屏幕等。如果我在普通类库中包含这些类,那么功能就消失了。

将应用程序设置为使用“模块”应用程序中的控制器非常简单。

    routes.MapRoute(
            "Default", // Route name
            "{controller}/{action}/{id}", // URL with parameters
            new { controller = "Home", action = "Index", id = UrlParameter.Optional } // Parameter defaults
            , new[] { "ModuleApplication1.Controllers" }
        );

问题是视图,控制器正在尝试加载当前应用程序中不存在,但它在我的“模块”应用程序中。更糟糕的是 - 视图不会编译也不会嵌入到dll中。我不会复制它们。我更喜欢从dll加载它们。如果可能的话。

我承认,我是MVC的新手。

我错过了什么吗?这有什么解决方案吗?我的做法完全错了吗?

1 个答案:

答案 0 :(得分:2)

您可以使用MvcContrib便携式区域,它们的设计完全符合此方案。