Подтвердить что ты не робот

Маршрутизация MVC WEB API терпит неудачу, когда url содержит закодированные амперсанды

Когда я вызываю свой веб-сервис, witch принимает два параметра:

Потенциально опасное значение Request.Path было обнаружено у клиента (&).

Routeconfig:

config.Routes.MapHttpRoute(
name: "PropertiesSearch",
routeTemplate: "api/property/Search/{category}/{query}",
defaults: new { controller = "Property", action = "Search", category = "common", query = string.Empty }
);

Controllermethod:

[HttpGet]
public SearchResult Search(string category, string query)
{
}

Когда я вызываю api с помощью:

/апи/недвижимость/поиск/дома/Areaid% 3D20339% 26areaId% 3D20015

Потенциально опасное значение Request.Path было обнаружено у клиента (&).

Выполнение этого действия:

/апи/недвижимость/поиск/дома/? = Запрос Areaid% 3D20339% 26areaId% 3D20015

отлично работает.

Как решить проблему декодирования маршрутизации?

4b9b3361

Ответ 1

Скотт Гензельман рассказал об этом. Возможно, вы захотите проверить свойство requestPathInvalidCharacters <httpRuntime> node в файле web.config.

Лично я бы избегал таких символов в части uri и просто помещал эти значения в параметры строки запроса.