【发布时间】:2017-11-16 06:02:25
【问题描述】:
向以下控制器发送表单 POST HTTP 请求 (Content-Type: application/x-www-form-urlencoded) 会导致 HTTP 415 Unsupported Media Type 响应。
public class MyController : Controller
{
[HttpPost]
public async Task<IActionResult> Submit([FromBody] MyModel model)
{
//...
}
}
表单发布 HTTP 标头:
POST /submit HTTP/1.1
Host: example.com:1337
Connection: keep-alive
Content-Length: 219
Pragma: no-cache
Cache-Control: no-cache
Origin: https://example.com:1337
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36
Content-Type: application/x-www-form-urlencoded
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
Referer: https://example.com:1337/submit
Accept-Encoding: gzip, deflate, br
Accept-Language: en-US,en;q=0.8,nl;q=0.6
这曾经在 .NET 4.6 上与 ASP.NET MVC 5 一起使用。
【问题讨论】:
-
您不必使用 [FromForm] "Submit(MyModel model)" 也可以正确获取模型。
标签: c# asp.net-core asp.net-core-mvc