//[Route("/Error")] // implementar [ValidateAntiForgeryToken] // usar [Bind(nameof(NovoUsuariomodel.Nome))] para evitar ataque Mass assignment, também conhecido como Over-posting public async Task <IActionResult> AddItem([Bind(nameof(UsuarioModel.Nome), nameof(UsuarioModel.Sobrenome))] UsuarioModel novoUsuario) { if (await TryUpdateModelAsync <UsuarioModel>(novoUsuario, "usuario", s => s.Nome, s => s.Sobrenome)) { await _Iusuario.AddItemAsync(novoUsuario); return(Resultado()); // Aqui retorno após inserir novo usuário JsonResult onde a string cairá no SPAN id=msg da PartialViewNovoUsuario. //return RedirectToAction(nameof(Index)); // Aqui para retornar uma nova view ususario ou pelo nome do método do controller Usuario //return RedirectToRoute("usuario"); //return RedirectToAction(nameof(Index)); } else { // Aqui contruo uma variavel que me retornará o erro diretamente do ModelState sem precisar redirecionar ou chamar novamente a View() e coloco o valor como forma de JsonResult. var errorList = (from item in ModelState where item.Value.Errors.Any() select item.Value.Errors[0].ErrorMessage).ToList(); return(new JsonResult(errorList)); } }