Tratando de utilizar “ViewBag” dentro de un “Controller”, tenía lo siguiente:
ViewBag.HayErrores = "verdadero";
return RedirectToAction("OtraAccion");
En la página “OtraAccion” el valor de “ViewBag.HayErrores” ya no existe.
Esto se debe a que los “ViewBag” no son persistentes al realizar la redirección.
Para utilizar un valor temporal que sobreviva a la redirección, debes utilizar “TempData”, para nuestro ejemplo quedaría así:
TempData["HayErrores"] = "verdadero";
return RedirectToAction("OtraAccion");
Y después en tu “View” puedes checar el valor utilizando “Razor”. Solamente tienes que checar primero que el valor no sea nulo, de esta forma:
var HayErrores = "";
if (TempData["HayErrores"] != null)
{
HayErrores = TempData["HayErrores"].ToString();
}
if (HayErrores == "verdadero")
{
<h3> Error </h3>
Hay un error, por favor vuelve a intentarlo.
}