2

我似乎无法弄清楚如何将命名空间添加到自定义路由我有以下内容

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”方法的重载来注册此路由。

4

0 回答 0