![](/img/trans.png)
[英]Produces data annotation not working for xml in asp.net core 2.1
[英]FormDataCollection not working in ASP.NET Core 2.1?
不要使用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中描述,我很好奇我们可以(也应该)使用它来获取post参数吗?
Microsoft.AspNetCore.Mvc.WebApiCompatShim附带的FormDataCollection 没有无参数构造函数 ,因此这可能是问题的原因。 根据官方文件 -
为了进行绑定,该类必须具有公共的默认构造函数,并且要绑定的成员必须是公共的可写属性。 当发生模型绑定时,将仅使用公共默认构造函数实例化该类,然后可以设置属性。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.