[英]C# HttpPost - field is required error (field is always null) even when provided
我有 asp net core 應用程序。 我的控制器如下所示:
[HttpPost]
public string Test(int x, int y)
{
return Request.Form["x"] + " - " + Request.Form["y"] + " | " + x + " - " + y;
}
但是當我嘗試進行發布請求時,x 和 y 始終為 0。當我將 int 更改為例如字符串時,當我嘗試發布時,它給我錯誤“字段 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;
}
我剛剛用int
和strings
確認了它。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.