如何将命名空间添加到自定义路由扩展

h3n*_*h3n 13 model-view-controller asp.net-mvc

我使用routes.add而不是routes.maproute(它有一个命名空间arg),因为我扩展了Route Class.我需要在路由上添加命名空间,因为我的一个区域在站点中具有相同的控制器名称.我的问题是我不知道在哪里放置命名空间..


public class CultureRoute : Route
{
     public CultureRoute(string url, object defaults, object constraints, RouteValueDictionary dataTokens)
            : base(url, new RouteValueDictionary(constraints), dataTokens, new MvcRouteHandler())
        {
        }
}

Global.asax中


routes.Add("Default", new CultureRoute(
    "{controller}/{action}/{id}",
    new {controller = "Home", action = "Index", id = UrlParameter.Optional}));

h3n*_*h3n 17


var dataTokens = new RouteValueDictionary();
var ns = new string[] {"MyProject.Controllers"};
dataTokens["Namespaces"] = ns;

routes.Add("Default", new CultureRoute(
    "{controller}/{action}/{id}",
    new { controller = "Home", action = "Index", id = UrlParameter.Optional },
    null /*constraints*/,
    dataTokens
));