C#HttpPost-字段是必需的错误(字段始终为null),即使在提供时也是如此



我有一个asp-net核心应用程序。我的控制器看起来像这样:

[HttpPost]  
public string Test(int x, int y)  
{
return Request.Form["x"] + " - " + Request.Form["y"] + " | " + x + " - " + y;
}

但是当我尝试发布请求时,x和y总是0。当我把int改为例如string时,它会给我一个错误";字段x是必需的、字段y是必需的";,当我试着发帖的时候。奇怪的是Request。Form〔name〕给了我正确的值。

例如:此POST请求:

POST /api/user/ HTTP/1.1
Host: localhost
Content-Type: application/x-www-form-urlencoded
Content-Length: 9
x=123&y=5

给我这个结果:

123 - 5 | 0 - 0

可以使用Request.Form,但它只适用于int,正如我上面所说的,当我将其更改为字符串时,它会返回代码400,其中包含必填字段的消息。如何解决此问题?

将签名更新为如下所示,并让控制器知道应该从哪里获取这些值以进行绑定。

[HttpPost]  
public string Test([FromForm] int x, [FromForm] int y)  
{
return Request.Form["x"] + " - " + Request.Form["y"] + " | " + x + " - " + y;
}

我刚刚用intstrings确认了这一点。

相关内容

  • 没有找到相关文章