@DailyDDose

ASP.NET .NET Core Web Api -- почему параметры всегда null?

Что я делаю не так?
AuthController.cs
using Microsoft.AspNetCore.Mvc;
 
namespace WebApiServer.Controllers
{
    [Route("api/[controller]")]
    public class AuthController : Controller
    {
        // POST api/auth
        [HttpPost]
        public string Post([FromBody] string login, [FromBody] string pass)
        {
            System.Console.WriteLine("login: " + login);
            System.Console.WriteLine("pass: " + pass);
            if (
                (login == "dailydose" && pass == "iuwqfheiwqnef")
                ||
                (login == "admin" && pass == "iuwqfheiwqnef")
            )
            {
                return "SUCCESS";
            }
 
            return "ERROR";
        }
    }
}
5a50f301b3f76948726358.jpeg
  • Вопрос задан
  • 2297 просмотров
Решения вопроса 1
@kttotto
пофиг на чем писать
Атрибут FromBody может применяться только к одному параметру. Он нужен, когда Вы в теле передаете параметр простого типа. Если Вам нужно отправить несколько параметров пост запросом, сделайте сложный тип (dto, viewModel, как нравится)
public class AuthorizeModel
{
	public string Login { get; set; }
	public string Password { get; set; }
}

В этом случае атрибут можно не указывать.
Вот тут подробности.
Web API reads the response body at most once, so only one parameter of an action can come from the request body. If you need to get multiple values from the request body, define a complex type.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы