Не проверяйте это с Core 1.1 или 2.0. Ситуация возникает при использовании FormDataCollection в качестве параметра в методе контроллера следующим образом:
[Route("[controller]")]
[ApiController]
public class AuthController : ControllerBase
{
[Route("user")]
[HttpPost]
public HttpResponseMessage CheckUser(FormDataCollection form)
{
...
}
}
Он возвращает 400 неверный запрос независимо от заголовка Content-Type.
Но это работает в .NET Framework 4.5:
[RoutePrefix("auth")]
public class AuthController : ApiController
{
[Route("user")]
[HttpPost]
public HttpResponseMessage user(FormDataCollection form)
{
...
}
}
Конечно, я могу использовать Request.Form.TryGetValue(key, out var value)
. Но класс FormDataCollection не ограничен в Core, и мне любопытно, можем (и должны) мы использовать его для получения параметров публикации?
FormDataCollection
? Если бы вы использовали DTO, он был бы создан из тела. Если вы хотите привязать простые параметры к телу, используйте[FromBody]
- person Panagiotis Kanavos   schedule 12.07.2018