簡體   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