【问题标题】:How do I create a well-structured ASP.NET MVC multi-site codebase?如何创建结构良好的 ASP.NET MVC 多站点代码库?
【发布时间】:2010-12-05 08:44:51
【问题描述】:

我正在开展一个项目,该项目具有最终模糊定义的要求:“网站应该对其他客户‘可换肤’。”

众所周知,几乎总是需要对 UI、逻辑和模型进行更改。

我已经解释过,将另一个客户添加到站点需要进行工作,而且它不会像创建新皮肤那么简单。我还解释过,不可能为未知和未定义而设计。

话虽如此,我想提出一种设计,既可以重用,又不会过于复杂。

我希望能够共享尽可能多的控制器和视图。

我曾考虑尝试根据用户用于进入站点的 URL 加载一组不同的路由(指向不同的控制器)(这甚至可能吗?)。我的想法是我可以定义一组基本控制器并为每个子站点从它们继承。

有没有更好的方法来做我想做的事情?

这可以通过 IoC 容器来完成吗?这种方法有什么好处吗?

其他人如何处理应在不同站点之间共享和大部分重用单个 MVC 代码库的情况?

感谢您的任何建议或意见!

【问题讨论】:

    标签: .net asp.net asp.net-mvc ioc-container


    【解决方案1】:

    如果站点将驻留在不同的服务器上,最简单的开始是根据查询变量或 Web.config 值在母版页中加载不同的 css 文件。另一种方法是创建自己的 CSSResult,它继承自 ActionResult,它根据请求域返回 css 文件。如果您想更好地控制显示哪个视图,您可以创建一个继承自 IViewEngine 接口的类,并根据请求域显示不同的视图。

    【讨论】:

      猜你喜欢
      • 2018-01-27
      • 2013-11-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-03-29
      • 2010-11-17
      • 2014-11-02
      相关资源
      最近更新 更多