I want to return the validation errors of my model. I just get an error message when I try to register.
System.Linq.Enumerable + WhereEnumerableIterator'1 [System.Web.Mvc.ModelErrorCollection]
I'm putting validation in controller :
public async Task<ActionResult> Create(ClienteViewModel viewmodel)
{
if (ModelState.IsValid)
{
db.Set<Pessoa>().Add(viewmodel.Pessoa);
if (viewmodel.Cliente.TipoPessoa.Equals(Models.Enum.TipoPessoa.Juridica))
{
db.Set<PessoaJuridica>().Add(viewmodel.PessoaJuridica);
}
else {
db.Set<PessoaFisica>().Add(viewmodel.PessoaFisica);
}
db.Cliente.Add(viewmodel.Cliente);
await db.SaveChangesAsync();
return RedirectToAction("Index");
}
else {
string erros = ModelState.Select(x => x.Value.Errors).Where(y => y.Count() > 0).ToString();
ModelState.AddModelError("", erros);
}
// ViewBag.PessoaId = new SelectList(db.Pessoa, "PessoaId", "Nome", cliente.PessoaId);
return View(viewmodel);
}
In ViewModel , only the classes Pessoa
, PessoaJuridica
and Fisica
.
EDIT
The error happens on this line where return to view.
string erros = ModelState.Select(x => x.Value.Errors).Where(y => y.Count() > 0).ToString();
ModelState.AddModelError("", erros);