Saltar al contenido

Mostrar mensaje de error en la vista desde el controlador asp.net mvc 5

Solución:

Pero leí en alguna parte que debería poner una propiedad en mi modelo de vista y establecer el mensaje de error en esa propiedad. Estoy confundido ahora, ¿cómo lograr eso y cómo mostrar el error en Ver entonces? ¿Y cuál es la mejor práctica recomendada?

La mejor práctica es alterar la ModelState propiedad de diccionario de su controlador de esta manera:

[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Search(ForgotPasswordMV viewModel)
{
    // ... 
    else
    {
        ModelState.AddModelError("Email", "Email not found or matched");
        return View(viewModel);
    }
}

Luego, en su vista, agregue la línea a continuación al lado de su campo de correo electrónico;

@Html.ValidationMessageFor(m => m.Email)

Pero leí en alguna parte que debería poner una propiedad en mi modelo de vista y establecer el mensaje de error en esa propiedad.

Eso es correcto. Puede agregar el mensaje de error a su modelo de vista:

public class ForgotPasswordMV
{
    [Display(Name = "Enter your email"), Required]
    public string Email { get; set; }

    public string ErrorMessage { get; set; }
}

y luego establezca esta propiedad en su modelo de vista y pase el modelo de vista a la vista:

...
else
{
    viewModel.ErrorMessage = "Email not found or matched";
    return View(viewModel);
}

y finalmente en su vista fuertemente tipada use la propiedad en su modelo:

@model ForgotPasswordMV
...
<p>@Model.ErrorMessage</p>

Básicamente, aquí estamos reemplazando el uso de ViewBag con un modelo de vista fuertemente tipado.

Si alguien está buscando una solución simple y NADA PERMANENTE, no dude en usar esta respuesta, ya que me ayudó. NO use esta solución si tiene que preocuparse por la seguridad dentro de su aplicación.

En tu controlador:

TempData["Message"] = "This is my Error";

En su archivo Error.cshtml:

<h3><strong>@TempData["Message"]</strong></h3>

Resultado:

ingrese la descripción de la imagen aquí

¡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 *