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

前端之家收集整理的这篇文章主要介绍了asp.net-mvc – 如何添加命名空间到自定义路由扩展前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我使用routes.add而不是routes.maproute(它有一个命名空间arg)
因为我扩展了Route Class.
我需要在路由上添加命名空间,因为我的一个区域具有相同的控制器名称
在网站内.
我的问题是我不知道把命名空间放在哪里
  1.  
  2. public class CultureRoute : Route
  3. {
  4. public CultureRoute(string url,object defaults,object constraints,RouteValueDictionary dataTokens)
  5. : base(url,new RouteValueDictionary(constraints),dataTokens,new MvcRouteHandler())
  6. {
  7. }
  8. }

Global.asax中

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

解决方法

  1.  
  2. var dataTokens = new RouteValueDictionary();
  3. var ns = new string[] {"MyProject.Controllers"};
  4. dataTokens["Namespaces"] = ns;
  5.  
  6.  
  7. routes.Add("Default",new { controller = "Home",id = UrlParameter.Optional },null /*constraints*/,dataTokens
  8. ));

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