我可以将路径配置为:
routes.MapRoute(
name: "Default",
url: "{id}.zeko.com",
defaults: new { controller = "App",
action = "GetDetailsById",
id = UrlParameter.Optional
}
);
我想将id作为我方法的参数。告诉我我错在哪里?
答案 0 :(得分:1)
好吧我自己想出来......我们必须拆分每个id创建后得到的域名。
答案 1 :(得分: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;
}
答案 2 :(得分:0)
我发现了这篇文章,但是它需要提前知道每个可能的子域名,而我之前的答案允许使用动态子域名。希望这些有所帮助!
Is it possible to make an ASP.NET MVC route based on a subdomain?