几天来,我一直在想最好的方法来做到这一点,并想知道其他人的想法。
我们希望将我们所有的公司网站重建和升级到 ASP.NET MVC 3,并在所有网站上使用一个通用模板(大部分);我们已经在 MVC 3 中有一个站点,它将成为其他站点的捐助站点。
起初我只是复制/粘贴项目,用与每个站点相关的内容替换所有内容并完成它,但这会使将来更新模板/样式表/帮助程序更加困难 - 我们只有少数网站,所以这不是一个大问题。
想法1
我想我想做的是有一个包含所有网站的单个项目,可能按区域分开以保持它们分开并使用路由将请求发送到各个域到正确的位置并建立指向正确的域。
这将符合我们计划将所有网站链接在一起的方式——本质上是一个所有网站共有的菜单,列出了各个公司,这些将链接到包含与该特定公司相关的项目的子菜单的公司域。
这就是它变得棘手的地方,因为我需要在域级别进行路由 - 所以我不想路由到当前域上的 company2 Controller (例如 http://www.groupcompany.ex/company2
)我想路由请求 company2 自己的域 - http://www.company2.ex/{controller}/{action}/{id}
.
想法二
或者,我可以在单个解决方案中为每个站点创建项目,并拥有一个托管任何帮助程序、CSS 和 JavaScript 等的通用项目。
关于我应该以哪种方式执行此操作的任何想法,以及我的建议是否完全疯狂? (很可能是这种情况)。
最佳答案
这是一个常见的要求。你问的是所谓的 Multi-Tenancy 。迄今为止,我还没有就如何在 MVC 中实现 Multi-Tenancy 达成共识。可能有与被问及的问题一样多的解决方案。
我也没有满意地解决这个问题。但是,有许多博客条目涵盖了这一点。示例包括:
http://weblogs.asp.net/zowens/archive/2010/05/26/multi-tenant-asp-net-mvc-introduction.aspx
http://codeofrob.com/archive/2010/02/01/multi-tenancy-in-asp.net-mvc-why-do-we-want-to.aspx
这是我认为需要在某个时候构建到框架中的东西。希望这会发生,或者至少有人想出了一个优雅的解决方案。
关于ASP.NET MVC 3 - 处理多个域并共享单个代码库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6886582/