Как заставить ASP.NET MVC соответствовать символу точки («.») В конце маршрута?

ASP.NET MVC долгое время обрабатывает символ точки как литерал для маршрутов . Однако это не t соответствовать маршруту, если точка находится в конце данной части маршрута.

Учитывая маршрут {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...

Мое требование - иметь произвольное количество точек в любом месте идентификатора раздел. Есть ли способ обойти это или это известная ситуация, которую мы должны избегать? Мне кажется, что это ошибка MVC 2.

PS Вы также можете воспроизвести такое же поведение в StackOverflow, добавив точки в строку вопроса в URL в разных местах.

РЕДАКТИРОВАТЬ: Извините, это похоже на копию "Ресурс не найден." ошибка, когда в конце URL-адреса есть «точка» . Я не мог найти его сам раньше.

12
задан Community 23 May 2017 в 11:53
поделиться

1 ответ

Если вы используете .NET 4.0, вы можете установить этот флаг в разделе system.web вашего web.config, и он будет разрешен:

<httpRuntime relaxedUrlToFileSystemMapping="true" />

Я тестировал его, и он работает. Хаак дает объяснение этому.

12
ответ дан 2 December 2019 в 21:42
поделиться
Другие вопросы по тегам:

Похожие вопросы: