我似乎无法弄清楚如何将命名空间添加到自定义路由我有以下内容
routes.Add("DomainRoute",
new DomainRoute("{store}.domain.*",
"{controller}/{action}/{id}",
new { controller = "Home", action = "Index" },
new string[] { "Mynamespace.Subdomain.Controllers" }));
routes.MapRoute("Default",
"{controller}/{action}/{id}",
new { controller = "Home", action = "Index", id = "" },
new string[] { "Mynamespace.Controllers" });
这是 DomainRoute 的构造函数
public DomainRoute(string domain, string url, object defaultValues, string[] namespaces)
: base(url, new RouteValueDictionary(defaultValues), new MvcRouteHandler())
{
Domain = domain;
if (namespaces != null && namespaces.Length > 0)
{
DataTokens = new RouteValueDictionary();
DataTokens["Namespaces"] = namespaces;
}
}
但是当我运行此代码时,我收到错误:
找到了与名为“Home”的控制器匹配的多种类型。如果服务此请求的路由 ('{controller}/{action}/{id}') 未指定命名空间来搜索与请求匹配的控制器,则可能会发生这种情况。如果是这种情况,请通过调用采用“namespaces”参数的“MapRoute”方法的重载来注册此路由。