2010-12-17 2 views
0

У меня есть приложение ASP.NET MVC.Как изменить RoutingUrl для приложения MVC в случае одного контроллера

Я имею routingUrl, как HTTP: // MyApp/Главная/Продукция/Productname/DocTypename/CountryName Теперь я пытаюсь сделать URL, как HTTP: // MyApp/Продукты/Productname/DocTypename/COUNTRYNAME

Как у меня есть только один контроллер, я хочу избавиться от Home directory from the Url.

Вот мой код в Global.asax:

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

     routes.MapRoute( 
      "Default", // Route name 
      "{controller}/{action}/{ProductName}/{DocTypename}/{CountryName}", // URL with parameters 
      new { controller = "Home", action = "Products", ProductName = UrlParameter.Optional, DocTypename = UrlParameter.Optional, CountryName = UrlParameter.Optional } // Parameter defaults 
     ); 
} 

Здесь ProductName/DocTypename/CountryName являются динамическими.

Я получаю ошибку ниже, когда я не указать контроллер в приведенном выше коде:

RouteData должен содержать элемент с именем «контроллер» с непустым значением строки.

Цените свое время.

Благодаря

ответ

1

Попробуйте этот маршрут, но убедитесь, что его перед тем маршрутом по умолчанию ..

routes.MapRoute( 
      "Default", // Route name 
      "{action}/{ProductName}/{DocTypename}/{CountryName}", // URL with parameters 
      new { controller = "Home", action = "Products", ProductName = UrlParameter.Optional, DocTypename = UrlParameter.Optional, CountryName = UrlParameter.Optional } // Parameter defaults 
     ); 
Смежные вопросы