У меня есть приложение MVC.NET с одного маршрута следующим образом:Как разрешить «Незаконные символы в пути»?
routes.MapRoute("member", "member/{id}/{*name}", new { controller = "member", action = "Details", id = "" }, new { id = @"\d+" });
Таким образом, связь может быть что-то вроде этого: http://domain/member/123/any_kind_of_username
Это прекрасно работает в целом, но если путь содержит недопустимые символы (например, double qoute: http://domain/member/123/my_ «user» _name) Я получаю «System.ArgumentException: Незаконные символы в пути».
После долгих поисковых запросов лучшие предложения, похоже, состоят в том, чтобы убедиться, что URL-адрес не содержит таких символов. К сожалению, это не в моем распоряжении в этом случае.
Есть ли способ обойти это?
предположительно они называются незаконными символами, потому что вы не можете их использовать ... –
Не могут ли они быть закодированы в URL? – Oded
@Mitch - Ну, например, двойная цитата отлично работает для Apache, поэтому я не понимаю, почему IIS этого не допустил. @Oded - Проблема в том, что я не контролирую эти URL-адреса. – hbruce