URL-маршрут с двумя переменными не работает - PullRequest
0 голосов
/ 16 октября 2011

есть проблема с маршрутизацией URL ASPC MVC. Я создал этот маршрут (это первый маршрут в моем методе RegisterRoutes:

routes.MapRoute(
    "Activate",
    "Account/Activate/{username}/{key}",
    new { controller = "Account", action = "Activate", username = "", key = "" },
    new { username = @"([a-z0-9\.-]+)", key = @"([a-z0-9\.-]+)" } 
);

но когда я пытаюсь перейти по URL, вот так:

http://localhost:63779/acount/activate/test/hLMqWJrwp1dK5xTqbGkP5kzUNQ4

возвращает ошибку 404

(с UrlParameter.Optional У меня тот же результат)

1 Ответ

1 голос
/ 16 октября 2011

Проблема в том, что ваше регулярное выражение неверно.Используйте следующее:

routes.MapRoute(
    "Activate",
    "Account/Activate/{username}/{key}",
    new { controller = "Account", action = "Activate" },
    new { username = @"^[\w\.]+$", key = @"^[\w\.]+$" }
);

Показанное регулярное выражение будет соответствовать строке, содержащей любой символ слова (\ w совпадает с [A-Za-z0-9_]), или точке, которая не имеет пробелов илидругие символы.

ОБНОВЛЕНИЕ

После тестирования маршрута и копирования его в мой ответ, я забыл изменить значение контроллера на «Учетная запись».Я обновил маршрут выше.

...