Saltar al contenido

¿Recibe un mensaje de error si ModelState.IsValid falla?

Solución:

Prueba esto

if (ModelState.IsValid)
{
    //go on as normal
}
else
{
    var errors = ModelState.Select(x => x.Value.Errors)
                           .Where(y=>y.Count>0)
                           .ToList();
}

errores será una lista de todos los errores.

Si desea mostrar los errores al usuario, todo lo que tiene que hacer es devolver el modelo a la vista y si no ha eliminado la Razor @Html.ValidationFor() expresiones, se mostrará.

if (ModelState.IsValid)
{
    //go on as normal
}
else
{
    return View(model);
}

La vista mostrará cualquier error de validación junto a cada campo y / o en ValidationSummary si está presente.

Si está buscando generar una única cadena de mensaje de error que contenga el ModelState mensajes de error que puede utilizar SelectMany para aplanar los errores en una sola lista:

if (!ModelState.IsValid)
{
    var message = string.Join(" | ", ModelState.Values
        .SelectMany(v => v.Errors)
        .Select(e => e.ErrorMessage));
    return new HttpStatusCodeResult(HttpStatusCode.BadRequest, message);
}

Puede hacer esto en su vista sin hacer nada especial en su acción usando Html.ValidationSummary () para mostrar todos los mensajes de error, o Html.ValidationMessageFor () para mostrar un mensaje para una propiedad específica del modelo.

Si aún necesita ver los errores desde su acción o controlador, consulte la propiedad ModelState.Errors

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *