【问题标题】:MVC 2 Routing - {Controller}.com/{action}/{id} - Is it Possible?MVC 2 路由 - {Controller}.com/{action}/{id} - 可能吗?
【发布时间】:2010-12-05 02:41:17
【问题描述】:

我们在内部服务器上托管了多个不同的域。它们都代表我们公司拥有的不同品牌,我们希望在每个领域之间进行整合,共享模型、视图、资源等。

我想做的是将 {Controller} 作为实际域,因此它看起来像 http://{Controller}.com/{Action}/{Id}

这可能吗?我见过有人用子域来做。

并且,是否值得或有更简单的方法来完成同样的事情。

如果是这样,有人对我如何在 Localhost 上进行测试有任何建议吗?

【问题讨论】:

    标签: model-view-controller routing asp.net-mvc-routing


    【解决方案1】:

    是的,这可能与基于子域的路由并没有什么不同。如果您查看this example,他会查看Host 标头,并在“。”上拆分。然后取数组中的第一个元素。您只需获取该数组中的倒数第二个元素(因为“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 上进行测试,您只需将要测试的域名添加到您的 hosts 文件中,指向 127.0.0.1。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-07-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-03-14
      • 1970-01-01
      相关资源
      最近更新 更多