代码之家  ›  专栏  ›  技术社区  ›  Simon Farrow

使用ASP.NET MVC的嵌套应用程序

  •  2
  • Simon Farrow  · 技术社区  · 16 年前

    我目前正在开发一个ASP.NET-MVC内容管理系统。能够部署嵌套的应用程序(例如/shop)以在内部拥有单独的应用程序,这将非常有用。甚至是CMS的另一个实例。

    我发现了一些关于限制web.config继承的信息,但我不知道这是如何映射到MVC应用程序的。我希望它基本上和运行时的堆栈相同。不过,没有什么比这更容易的了。

    如果有人有这样的经验,我会非常感激。一个大的应用程序来管理所有这些应用程序的想法一点也不好。

    硅。

    3 回复  |  直到 16 年前
        1
  •  2
  •   Nick Berardi    16 年前

    老实说,你最大的障碍是创建路线,确保它们不会干扰系统中已经存在的路线。当你开始工作后,剩下的就很容易了。

    您需要的第一件事是一个httpmodule,它将插入到web.config下的。此模块将用于注册和自定义要注册的视图引擎或路由。这样做的方式与在global.asax中相同,但不是将它们放在应用程序中,而是将它们放在httpmodule的静态构造函数中。因此,它们只能像应用程序启动一样加载一次。

    通过执行上述操作,您将创建一个易于传输且不需要内建器修改global.asax代码以使您的东西工作的模块。

    您可能要做的第二件事是在web.config中创建自定义配置,以设置类似应用程序根路径的内容。当您在httpmodule中设置路由时,它将被预先设置到路由上。此外,还可以使用它存储不适合数据库的自定义信息。

    最后但不是必需的是,您可能希望创建一个了解和理解文件夹结构的自定义视图引擎。只有当您希望将视图存储在与默认视图不同的路径中时,才需要这样做,以便将冲突最小化。

        2
  •  2
  •   Bruno Shine    16 年前

    退房 Grouping Controllers with ASP.NET MVC 来自菲尔·哈克。

    希望它有帮助, 布鲁诺·菲格雷多

        3
  •  0
  •   Keltex    16 年前

    我以前去过这条路(和/博客),但发现它是可行的,但很复杂,很难维护。相反,我最终使用了子域:

    • www.
    • shop.example.com商店
    • 博客.example.com

    这些更容易维护,因为您可以让它们在IIS中作为单独的网站工作。当然,您也可以将www.example.com/shop重定向到shop.example.com。