Ответ 1
Если вы используете .NET 4.0, вы можете установить этот флаг в разделе system.web вашего web.config, и он будет разрешен:
<httpRuntime relaxedUrlToFileSystemMapping="true" />
Я тестировал его, и он работает. Haack имеет объяснение.
ASP.NET MVC обрабатывает символ точки как литерал для маршрутов в течение длительного времени. Однако он не соответствует маршруту, если точка находится в конце данной части маршрута.
С учетом маршрута {controller}/{action}/{id}
MVC соответствует этим:
http://test/somecontroller/someaction/some.id
http://test/somecontroller/someaction/....some.id
Но не эти:
http://test/somecontroller/someaction/someid.
http://test/somecontroller/someaction/someid...
Мое требование - иметь произвольное количество точек в любом месте раздела id. Есть ли способ работать над этим или это известная ситуация, которую нам нужно избегать? Мне кажется, ошибка MVC 2.
P.S. Вы также можете воспроизвести одно и то же поведение в StackOverflow, добавив точки в строку вопроса в URL в разных местах.
EDIT: Извините, это похоже на дубликат "Ресурс не найден." когда существует "точка" , в конце URL. Я не мог найти его раньше.
Если вы используете .NET 4.0, вы можете установить этот флаг в разделе system.web вашего web.config, и он будет разрешен:
<httpRuntime relaxedUrlToFileSystemMapping="true" />
Я тестировал его, и он работает. Haack имеет объяснение.