Solucionado (ver solução)
Solucionado
(ver solução)
4
respostas

Bad Request (ModelState.IsValid) esta retornando false

Verifiquei que ao mandar a requisição via Postman o breakpoint que inseri neste método é realizado. Mas , por algum motivo o mesmo esta retornando false na primeira validação do ModelState.

Segue JSON que foi enviado pelo Postman e o trecho do código que realiza a ação de incluir:

json: { "titulo": "Teste Postman", "subtitulo": "Espero que de certo", "autor": "Curso Alura", "resumo":null, "capa": null, "lista": 0 }

 [HttpPost]
        public IActionResult Incluir(LivroUpload model)
        {

            if (ModelState.IsValid)
            {
                var livro = model.ToLivro();
                _repo.Incluir(livro);

                var uri = Url.Action("Recuperar", new { id = livro.Id });
                return Created(uri, livro);
            }
            return BadRequest();
        }

insira seu código aqui

4 respostas

Pietro, bom dia. Faltou colar aqui a sua model LivroUpload para poder entender melhor...

O JSON deve seguir todas as definições de DataAnnotations incluídas no model, todas as variáveis que estão nulas aceitam nulas no model e os tipos de dados são os mesmos.

Aparentemente não consigo identificar nada de errado, mas se pude te ajudar a resolver marque a resposta como solucionada. Obrigado! Abs.

Segue model da LivroUpload

    public class LivroUpload
    {
        public int Id { get; set; }
        [Required]
        public string Titulo { get; set; }
        public string Subtitulo { get; set; }
        public string Autor { get; set; }
        public string Resumo { get; set; }
        public IFormFile Capa { get; set; }
        public TipoListaLeitura Lista { get; set; }
    }

Pietro, sua model não permite que capa seja nulo.

Coloque a "?" na variável para aceitar parâmetro nulo ou preencha o campo do Json com valor válido.

Acredito que valide o modelstate depois disso.

Abs.

solução!

Achei a solução, basicamente é adicionar ao trecho do código um [FromBody] para que force a requisição que esta sendo enviada pelo Postman no Body.

public IActionResult Incluir([FromBody]LivroUpload model)

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software