代码之家  ›  专栏  ›  技术社区  ›  DevMania

在MVC中对视图、控制器和模型进行分组

  •  3
  • DevMania  · 技术社区  · 16 年前

    所以,有没有一种方法可以将相关的控制器、视图、模型分组在一起,比如如果我有gallery模块,我希望它的所有控制器、视图、模型都分组在gallery文件夹下。

    4 回复  |  直到 10 年前
        1
  •  3
  •   Chad Ruppert    16 年前

    Areas 听起来像你要找的。这将允许您对控制器/视图等进行分组,除非我误解了这个问题?

        2
  •  2
  •   Kieran Senior    16 年前

    菲尔·哈克 discussed this here ,这是我所面临的同样的问题,我还没有正确地克服。

        3
  •  1
  •   Jason    16 年前

    从它的声音来看,你正在反对MVC的基本原则,即模型、视图和控制器的分离,而不是你希望通过使用模块以90度的角度分离。

    最后是模型。很明显,我不知道你的项目,所以我不知道它是如何布置的,但是模型通常不存在用于一个控制器(或者你的情况下的模块)。例如,我有针对用户、公司、车辆等的模型。这些模型是我的数据结构的共享表示,与模块无关,因为用户在查看网页时可能会看到它。我不能将它们拆分为模块,因为关键是它们由整个应用程序共享。

        4
  •  1
  •   Ryan Michela    16 年前

    我发现了一个相对简单的解决方案,它使用IIS配置来模拟区域。不需要对现有MVC框架进行扩展。

    在您的解决方案下为您站点中想要的每个区域创建一个新的MVC项目(例如Root、Blog、Forum、App1、App2)。如果您需要任何公共支持代码或公共模型,请将其放在MVC项目所依赖的单独dll项目中。

    在IIS中,将站点根目录配置为指向根项目目录。在站点根目录下创建指向每个子区域项目目录的web应用程序。

    这样做的好处是,您可以独立于路由系统更改web应用程序的名称,并且每个应用程序都认为自己在运行整个服务器。