当前位置: 首页 > 知识库问答 >
问题:

ASP.NET Core表单POST导致HTTP 415不受支持的媒体类型响应

长孙沈义
2023-03-14
public class MyController : Controller
{
    [HttpPost]
    public async Task<IActionResult> Submit([FromBody] MyModel model)
    {
        //...
    }
}
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。

共有1个答案

宫坚
2023-03-14

对于表单,请使用[FromForm]属性,而不是[FromBody]属性。

下面的控制器与ASP.NET Core 1.1一起工作:

public class MyController : Controller
{
    [HttpPost]
    public async Task<IActionResult> Submit([FromForm] MyModel model)
    {
        //...
    }
}

注意:如果您的控制器使用[ApiController]注释,则需要[FromXxx]。对于普通视图控制器,可以省略它。

 类似资料:
  • 我试图通过这样的获取方法将数据从我的React应用程序发布到Django REST API: 我总是收到一个“错误”的帖子http://127.0.0.1:8000/something/net::ERR_中止了415(不支持的媒体类型)”,响应如下所示:“response 我还尝试使用axios发送GET请求,并在控制台中打印响应: 但答案是: 你有办法解决那个问题吗?

  • 如何使用C#在SQL Server数据库上执行CRUD操作? 例如,假设有一个带有以下列的DB表: 我希望发布一个新员工的信息到该数据库。什么是实现这一目标的有效方法? 我当前的: 下面是模型: 当我用以下输入测试我的应用编程接口时: 我得到这个错误: HTTP/1.1 415不支持的媒体类型 数据库中没有插入任何内容。 如能提供任何指导,将不胜感激。 : 根据请求生成的原始错误消息: HTTP/

  • 问题内容: 自数小时以来,我一直在尝试纠正http错误,但它仍显示不支持的页面。我在邮递员中添加标题。 这是我的Java代码 这是我的档案 问题答案: 通过和如何在响应流和请求流之间对对象进行序列化和反序列化。 将会发生的是,将从提供者的注册表中进行搜索,以查找可以处理的媒体类型。如果找不到,则Jersey无法处理该请求,并将发送415不支持的媒体类型。通常,你还应该在服务器端记录一个异常。不知道

  • 我已经创建了一个示例web服务来进行post调用。 我使用的是Jersey JAX-RS和Maven。

  • 我正在用Spring Boot构建一些API,但是当我试图用Postman查询时,我得到了一些关于Content-Type的错误。 我不明白哪里出了问题。 我注意到错误消失时,我删除了@刚体作为参数的方法。为什么啊? 我只想: 将XML发送到API

  • 我正在尝试向servlet发送POST请求。请求通过jQuery以以下方式发送: