2

我可以将路径配置为:

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

我希望 id 作为我的方法的参数。告诉我我哪里错了?

4

3 回答 3

1

好的,我自己想出来了……只是我们必须在创建每个 id 后泄露我们获得的域。

于 2012-12-21T17:02:14.627 回答
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;
    }
于 2012-11-25T06:29:41.920 回答
0

我为您找到了这篇文章,但是它需要提前了解每个可能的子域,因为我之前的回答允许动态子域。希望这些有所帮助!

是否可以基于子域创建 ASP.NET MVC 路由?

于 2012-11-25T06:35:44.253 回答