我有一个ASP.NET MVC应用程序有以下部署要求:高级ASP.NET MVC路由方案
的URL结构必须是这样的:
http://server/app/[enterprise]/[communinty]/ {控制器}/{行动} /。 ..
我想我能做的是在MVC路由处理程序获得它之前拦截URL,删除[enterprise]/[community]部分,然后允许MVC继续处理如果原始网址未包含这两个细分受众群。
这里的原因:
申请公开多个门户向多个客户(企业),以及企业内的每个社区都有自己的用户群。这种方案也可以通过将一个应用程序实例(二进制文件,内容,web.config)物理地部署到每个[社区]目录中来实现,但出于后勤和性能的原因,我认为我们不想走这条路。所以我试图通过路由技巧来虚拟化它。
任何有关如何去实施这个计划或备用解决方案的建议将不胜感激。
我们在IIS 7上,如果这有什么区别。
因此,人们访问'http:// server/app/MyCompany/FightingDogs/Home/Index',然后您想提取MyCompany/FightingDogs,以便URL现在读取'http:// server/app/Home/Index '? (我想你在会话或cookie中存储对MyCompany/Fightingdocs的引用?) – jao 2010-07-23 20:43:12
不完全。我希望浏览器可见的URL保持为http:// server/app/MyCompany/FightingDogs/Home/Index,但我不希望MVC控制器/模型/等必须知道“MyCompany/FightingDogs”部分。 – jlew 2010-07-23 20:49:24
不使用路由会更有意义,而是在登录时将当前用户的企业和社区存储在会话中?我可以想象,如果它们对于每个用户群都是唯一的,那么很难在文档中包含URL。 – Ryan 2010-07-24 04:07:07