1

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

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

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

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

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

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

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

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

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

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

4

1 回答 1

3

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

于 2009-10-09T14:22:48.390 回答