如何解决ASP.NET Core Web API不支持的媒体类型错误
当我发送POST请求时,出现此错误:
{
"type" : "https://tools.ietf.org/html/rfc7231#section-6.5.13","title" : "Unsupported Media Type","status" : 415,"traceId" : "|3866e04e-4b62c808bec91a8c."
}
模型类
namespace WebApi.Models
{
public class User
{
public string Username { get; set; }
public string Password { get; set; }
}
}
控制器
using System;
using Microsoft.AspNetCore.Mvc;
using WebApi.Models;
namespace WebApi
{
[ApiController]
[Route("/")]
public class HomeController : Controller
{
[HttpGet]
public IActionResult Get()
{
return View("Index");
}
[HttpPost]
public void Post(User user)
{
Console.WriteLine(user.Username);
Console.WriteLine(user.Password);
}
}
}
.cshtml文件:
<form method="post">
Username: <input type="text" asp-for="Username"/><br>
Password: <input type="password" asp-for="Password"/><br>
<input type="submit" value="SEND POST REQUEST">
</form>
解决方法
由于您的控制器是apicontroller,默认情况下它将获取json数据,但是您发送了表单数据,因此您需要通过在操作中添加[FromForm]
属性来指定来源:
[HttpPost]
public void Post([FromForm]User user)
{
Console.WriteLine(user.Username);
Console.WriteLine(user.Password);
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。