asp.net-mvc – 如何添加命名空间到自定义路由扩展

前端之家收集整理的这篇文章主要介绍了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}));

解决方法


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


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

猜你在找的asp.Net相关文章