ASP.NET MVC 3 с учетом регистра URL

Я делаю плохую вещь здесь. Я задаю вопрос, не пытаясь сперва понять, что кто-то знает легкий способ сделать это.

Есть ли шанс сделать систему маршрутизации ASP.NET MVC чувствительной к регистру? Я хотел бы, чтобы следующие два URL были разными:

example.com/a

example.com/A

У нас есть простое исправление или мы должны написать собственный обработчик для этого.

3 ответа

Решение

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

Это кажется плохой идеей. Вы предполагаете, что люди никогда не будут касаться URL-адреса вручную, всегда нажимая ссылки.

Кроме того, по умолчанию в MSSQL регистр не учитывается, если предположить, что некоторые значения вашего маршрута привязаны к базе данных.

Я также был бы готов поспорить, что все URL-адреса в поисковых системах строчные (догадка Edumacated).

РЕДАКТИРОВАТЬ

Все Google платные поисковые URL-адреса в нижнем регистре.

Если вы по-прежнему настаиваете на этом:

Вам также может понадобиться реализовать собственный viewengine, который ищет представления с учетом регистра. Также настраиваемая фабрика контроллеров для поиска контроллеров, чувствительных к регистру.

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

...(?-i:nonCaseSensitiveBit)backToCaseInsensitive...

Смотрите документацию Regex для полной информации.

Другие вопросы по тегам