我似乎无法弄清楚如何将命名空间添加到自定义路由中,我有以下内容
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}')未指定名称空间来搜索与请求匹配的控制器,则会发生这种情况。如果是这种情况,请通过调用' MapRoute'的过载来注册此路线。采用'命名空间的方法'参数。