Я пытаюсь создать действие на контроллере, который принимает имя пользователя, соответствующее домену, в качестве аргумента.Использование параметров маршрута, содержащих период
public class AccountsController : ApiController
{
[HttpGet, Route("accounts/{username}")]
public IHttpActionResult Get(string username)
{
return Ok();
}
}
Я могу выполнить HTTP GET /accounts/test%40testing
и получить ответ OK.
Когда я пытаюсь сделать аналогичный запрос с квалифицированным именем пользователя, действие на контроллере не ударяется; HTTP GET /accounts/user%40testing.org
получает ответ 404. Я могу видеть запрос, входящий в промежуточное ПО OWIN приложения, поэтому я уверен, что он выводит его из хоста в код .NET.
Я предполагаю, что есть что-то особенное в том, как Web API обрабатывает эти значения, но я не могу найти ничего в документации MSDN или подсказке о том, как с этим справиться.
Как я могу получить эти значения, переданные в действие?
Возможный дубликат [ApiController возвращает 404, когда идентификатор содержит период] (http://stackoverflow.com/questions/13298542/apicontroller-returns-404-when-id-contains-period) –