Model view controller MVC2路由{Controller}.com/{action}/{id}-可能吗?
我们在内部服务器上托管了几个不同的域。它们都代表我们公司拥有的不同品牌,我们希望在每个领域之间进行集成,共享模型、视图、资源等 我想做的是将{Controller}作为实际的域,这样它看起来就像http://{Controller}.com/{Action}/{Id} 这可能吗?我见过人们用子域来做这件事 而且,它是否值得,或者是否有更简单的方法来实现同样的目标Model view controller MVC2路由{Controller}.com/{action}/{id}-可能吗?,model-view-controller,routing,asp.net-mvc-routing,Model View Controller,Routing,Asp.net Mvc Routing,我们在内部服务器上托管了几个不同的域。它们都代表我们公司拥有的不同品牌,我们希望在每个领域之间进行集成,共享模型、视图、资源等 我想做的是将{Controller}作为实际的域,这样它看起来就像http://{Controller}.com/{Action}/{Id} 这可能吗?我见过人们用子域来做这件事 而且,它是否值得,或者是否有更简单的方法来实现同样的目标 如果是这样的话,有人对我如何在本地主机上测试这一点有什么建议吗?是的,这是可能的,与基于子域的路由并没有什么不同。如果你看,他看主机头
如果是这样的话,有人对我如何在本地主机上测试这一点有什么建议吗?是的,这是可能的,与基于子域的路由并没有什么不同。如果你看,他看
主机
头,在“.”上拆分,然后取数组中的第一个元素。您只需获取该数组中的第二个最后一个元素(因为“com”是最后一个元素)。基本上,在GetRouteData
覆盖中,您可以执行以下操作:
// Retrieve the url - and split by dots:
var url = httpContext.Request.Headers["HOST"];
var urlParts = url.Split(".");
var routeData = new RouteData(this, new MvcRouteHandler());
routeData.Values.Add("controller", urlParts[urlParts.Count - 2]);
(这里显然不包括错误检查和验证)
至于在localhost上进行测试,您只需将要测试的域名添加到文件中,指向127.0.0.1即可