Как изменить RoutingUrl для приложения MVC в случае одного контроллера - PullRequest
0 голосов
/ 17 декабря 2010

У меня есть приложение ASP.NET MVC.

У меня routingUrl как http://myapp/Home/Products/Productname/DocTypename/CountryName Теперь я пытаюсь сделать URL-адрес как http://myapp/Products/Productname/DocTypename/CountryName

Поскольку у меня есть только один контроллер, я хочу избавиться от каталога Home от 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 должен содержать элемент с именем 'controller' снепустое строковое значение.

Цените ваше время.

Спасибо

1 Ответ

1 голос
/ 17 декабря 2010

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

 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 
        );
...