2012-11-25 51 views
2

做我能得到一路徑配置爲:可以這樣路由在MVC 4.0

 routes.MapRoute(
     name: "Default", 
     url: "{id}.zeko.com", 
     defaults: new { controller = "App", 
         action = "GetDetailsById", 
         id = UrlParameter.Optional 
         } 
       ); 

我想要的ID作爲參數傳遞給我的方法。告訴我我錯在哪裏?

回答

1

確定了它自己.....只是我們要灑在創建每個ID之後,我們已經拿到了域名。

0

我不完全確定這是可能的。我相信MVC中的路由引擎默認情況下不處理域請求。你可以做的是添加一個事先處理請求的IIS處理程序,或者我在Web窗體中完成的工作(並且我不完全確定你將如何在MVC中完成此任務)是調用一種方法去除我的子域「Page_Load」方法,然後根據需要使用該變量。下面是我用的函數的例子,請記住我的應用程序只期待與單個子域中的工作,例如「subdomain.maindomain.com」

private static string GetSubDomain(Uri url) 
    { 
     try 
     { 
      string host = url.Host; 
      if (host.Split('.').Length > 2) 
      { 
       int firstIndex = host.IndexOf("."); 
       string subdomain = host.Substring(0, firstIndex); 

       return subdomain; 
      } 
     } 
     catch 
     { 

     } 

     return string.Empty; 
    }