我需要能够为每个客户提供整个网站的不同版本。当然是测试版与生产版,但提供一两个先前的生产版本会很好。鼓励客户定制,我不希望强迫所有客户遵循(预期的)发展步伐。
要服务的版本存储在数据库中。
从我目前阅读的内容来看,自定义视图引擎可能是实现这一目标的最直接方法,但在沿着这条道路前进之前,我欢迎任何建议和评论。
感谢洞察!埃里克
编辑:不只是观点不同;控制器、母版页、图像、CSS...
我需要能够为每个客户提供整个网站的不同版本。当然是测试版与生产版,但提供一两个先前的生产版本会很好。鼓励客户定制,我不希望强迫所有客户遵循(预期的)发展步伐。
要服务的版本存储在数据库中。
从我目前阅读的内容来看,自定义视图引擎可能是实现这一目标的最直接方法,但在沿着这条道路前进之前,我欢迎任何建议和评论。
感谢洞察!埃里克
编辑:不只是观点不同;控制器、母版页、图像、CSS...
如果有关哪个版本的规则显示给哪个用户,我猜他们需要先进行身份验证。如果是这种情况,您将有机会为用户设置 cookie。
我可能会在身份验证上设置一个 cookie,以确定向用户显示哪个版本,然后使用像 IIRF 这样的 URL 重写器来将该 cookie 设置为站点的 beta 版本的请求定向。
如果用户对测试版有问题,他们可以选择返回生产站点。
我沿着视图引擎路线走如何实现自定义 RazorViewEngine 以在非标准位置查找视图?
基本上它很简单,我们有相同的控制器模型等。所有的代码都是共享的。视图的呈现虽然基于“品牌”。所以视图引擎足够聪明,如果我是品牌 A,那么视图将位于 {standard view location}/brand/viewname 中。
虽然它是分层的,所以如果视图位于品牌文件夹中,它会使用该文件夹,否则它会回退到默认位置。它基本上是 MVC 用于查找视图源位置的标准模型的扩展。