如何在web.net中覆盖asp.net mvc应用程序的默认路由路径

时间:2015-02-16 17:00:02

标签: asp.net-mvc asp.net-mvc-routing

是否可以通过更改web.config文件来覆盖asp.net mvc应用程序的默认路由?

不修改routeconfig.cs文件

1 个答案:

答案 0 :(得分:0)

我遇到了同样的问题,我通过以下方法解决了这个问题:

假设您在web.config中有一个格式为“controller / action”的路由元素。 在我的RouteConfig.cs中,我添加了以下代码:

public static void RegisterRoutes(RouteCollection routes)
{
  var mySection = 
    WebConfigurationManager.OpenWebConfiguration("~").GetSection("WHATEVER_YOU_NEED");
  if (mySection != null)
  {
    // OVERRIDE WITH WEB.CONFIG
    string[] parts = mySection["YOUR_GROUP"].Split('/');
    routes.MapRoute(
                name: "Default",
                url: "{controller}/{action}/{id}",
                defaults: new 
                { 
                   controller = parts[0], 
                   action = parts[1], 
                   id = UrlParameter.Optional 
                });
  }
  else
  {
    routes.MapRoute( ... YOUR DEFAULT ROUTE ...);         
  }
}