我使用routes.add而不是routes.maproute(它有一个命名空间arg)
因为我扩展了Route Class.
我需要在路由上添加命名空间,因为我的一个区域具有相同的控制器名称
在网站内.
我的问题是我不知道把命名空间放在哪里
因为我扩展了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 ));