Szyszka947
Szyszka947

Reputation: 870

Unsupported Media Type error for asp.net core web api

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

Answers (1)

Rena
Rena

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);
}

Result: enter image description here

Upvotes: 2

Related Questions