Reputation: 870
When I send a POST request then I get this error:
{
"type" : "https://tools.ietf.org/html/rfc7231#section-6.5.13",
"title" : "Unsupported Media Type",
"status" : 415,
"traceId" : "|3866e04e-4b62c808bec91a8c."
}
The model class
namespace WebApi.Models
{
public class User
{
public string Username { get; set; }
public string Password { get; set; }
}
}
The controller
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);
}
}
}
And .cshtml file:
<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>
Upvotes: 0
Views: 320
Reputation: 36695
For your controller is apicontroller,it would get json data by default,but you send a form data,so you need to specify the source by adding [FromForm]
attribute to your action:
[HttpPost]
public void Post([FromForm]User user)
{
Console.WriteLine(user.Username);
Console.WriteLine(user.Password);
}
Upvotes: 2