不要使用Core 1.1或2.0进行检查 . 情况是在控制器方法中使用 FormDataCollection 作为参数,如下所示:
[Route("[controller]")]
[ApiController]
public class AuthController : ControllerBase
{
[Route("user")]
[HttpPost]
public HttpResponseMessage CheckUser(FormDataCollection form)
{
...
}
}
无论是Content-Type标头,它都会返回 400 Bad Request .
但它适用于.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中被删除,我很好奇我们可以(并且应该)使用它来获取帖子参数吗?
1 回答
FormDataCollection 随Microsoft.AspNetCore.Mvc.WebApiCompatShim does not have parameterless constructor 一起提供,因此这将是问题的原因 . 根据official documentation -