关于 .net:如何创建结构良好的 ASP.NET MVC 多站点代码库?

How do I create a well-structured ASP.NET MVC multi-site codebase?

我正在从事一个具有最终模糊定义要求的项目:"网站应该对其他客户\\'可换肤\\'。"

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

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

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

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

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

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

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

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

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


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