Я создаю приложение MVC, которое состоит из объектов, на которые могут ссылаться два разных уникальных идентификатора, некрасивый сгенерированный системой идентификатор и более удобный для пользователя 5-кратный «короткий код».Например, я хотел бы, чтобы мои конечные пользователи могли вводить следующие URL-адреса в своих браузерах:
http://intranet/PRJ2011004
http://intranet/DEP42
Опять оба кодауникальны.У меня правильно настроена маршрутизация для первого URL.Когда пользователь вводит этот URL, он получает правильную страницу с индексной страницей для объекта: PRJ201104.
Как настроить маршрут для обработки второго сценария?Предпочтительно есть способ «обмануть» MVC, чтобы изменить значение, которое он передает контроллеру от краткого кода к проекту.
Я хотел бы получить способ перехватить 5-символьный маршрут короткого кода, взять предоставленное значение и найти его в моей таблице сущностей, а затем, если я найду подходящую запись, которую я хотел бы либо (в порядке предпочтения):
- Отображение страницы индекса сущностей с сохранением краткого кода в URL.В этом сценарии я хотел бы «обмануть» контроллер, который обрабатывает маршрут, думая, что переданный «id» на самом деле является уникальным идентификатором, а не коротким кодом (чтобы не пришлось рефакторировать мой существующий код)
- Перенаправьте URL-адрес на адрес с рабочим уникальным (безобразным) идентификатором.
И если я не найду подходящую сущность, использующую это значение короткого кода, я позволю продолжить свою стандартную обработку маршрута (например, мои контроллеры «Ошибка» и «Администратор», которыеоба 5 символа, но не короткие коды, будут продолжать работать должным образом.
TIA