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 для полной информации.