MVC3如何提供不同版本的网站

时间:2012-09-03 12:54:01

标签: asp.net-mvc-3

我需要能够为每个客户提供不同版本的整个网站。当然是beta与生产,但是提供一个或两个以前的生产版本会很不错。鼓励客户定制,我不希望强迫所有客户遵循(预期)开发速度。

要服务的版本存储在db中。

从我到目前为止所读到的,自定义视图引擎可能是实现这一目标的最直接的方法,但在开始这条道路之前,我欢迎任何建议和评论。

感谢您的见解! 埃里克

编辑:不仅仅是不同的观点;控制器,母版页,图像,CSS ......

2 个答案:

答案 0 :(得分:1)

如果关于向哪个用户显示哪个版本的规则,我猜他们需要先进行身份验证。如果是这种情况,您将有机会在用户上设置cookie。

我可能会在身份验证上设置一个cookie来确定向用户显示哪个版本,然后使用像IIRF这样的URL重写器将带有该Cookie集的请求定向到该网站的测试版。

如果用户遇到测试版问题,用户可以选择返回生产网站。

答案 1 :(得分:1)

我沿着视图引擎路线How do I implement a custom RazorViewEngine to find views in non-standard locations?

走了下去

基本上它非常直接,我们有相同的控制器模型等。所有代码都是共享的。然而,视图的呈现基于“品牌”。因此,视图引擎足够聪明,可以说如果我是品牌A,那么视图将存在于{标准视图位置} /品牌/视图名称中。

虽然如此,如果视图位于品牌文件夹中,则使用该视图,否则它将回退到默认位置。它基本上是MVC用来查找视图源位置的标准模型的扩展。