繁体   English   中英

FormDataCollection在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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM