簡體   English   中英

C# HttpPost - 字段是必需的錯誤(字段始終為空),即使提供

[英]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;
}

我剛剛用intstrings確認了它。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM