2013-03-25 2 views

ответ

2

Вы можете написать собственный маршрут:

public class MyRoute: Route 
{ 
    public MyRoute() 
     : base(
      "{part1}_{part2}/{action}", 
      new RouteValueDictionary(new { controller = "for_exp", action = "index" }), 
      new RouteValueDictionary(new { part1 = @"[a-z]+", part2 = @"[a-z]+" }), 
      new MvcRouteHandler() 
     ) 
    { 
    } 

    public override RouteData GetRouteData(HttpContextBase httpContext) 
    { 
     var rd = base.GetRouteData(httpContext); 
     if (rd == null) 
     { 
      return null; 
     } 

     var part1 = rd.GetRequiredString("part1"); 
     var part2 = rd.GetRequiredString("part2"); 
     rd.Values["controller"] = string.Concat(part1, "_", part2); 
     return rd; 
    } 
} 

, который будет зарегистрирован в вашем Application_Start:

public static void RegisterRoutes(RouteCollection routes) 
{ 
    routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); 

    routes.Add("MyRoute", new MyRoute()); 

    routes.MapRoute(
     name: "Default", 
     url: "{controller}/{action}", 
     defaults: new { controller = "Home", action = "Index" } 
    ); 
} 
+2

+1. Вы ничего не знаете :) –

+0

спасибо большое Дарин Димитров! – yusuf

Смежные вопросы