Asp.net mvc Подробности метод - PullRequest
1 голос
/ 02 мая 2011

Я работаю над проектом, в котором я использовал маршрутизацию по умолчанию

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

У меня есть пользовательский контроллер и такие методы, как Index, create и details

Я не хочу создавать ссылки типа http://mysite/users/details/111/somename вместо этого я хочу создать http://mysite/users/111/somename вроде stackoverflow своего рода URL. Я знаю, что могу добиться, зарегистрировав такой маршрут (до маршрута по умолчанию)

routes.MapRoute(
            "UsersDetails",                                              // Route name
            "Users/{id}/{name}",                           // URL with parameters
            new { controller = "Users", action = "Details", id = UrlParameter.Optional, name = UrlParameter.Optional }  // Parameter defaults
        );

но тогда все мои другие URL начинают создавать проблемы. например, если у меня есть URL http://somesite/users/registersuccess

Есть ли решение для этой проблемы, или я должен зарегистрировать все URL.

Привет

Parminder

1 Ответ

0 голосов
/ 02 мая 2011

Для ваших маршрутов вам потребуется ограничение на параметр id:

routes.MapRoute(
    "UsersDetails",
    "Users/{id}/{name}",
    new { controller = "Users", action = "Details", id = UrlParameter.Optional, name = UrlParameter.Optional }, 
    new { id="\d+" }
    );

Тогда другие ваши маршруты не будут затронуты.

...