Llego un poco tarde a la fiesta, pero lo suyo es aclarar que el problema se produce porque el ViewBag solo se persiste entre la petición y el render de la vista.
Tu navegador efectua una nueva llamada al Index y el ViewBag se pierde.
Como te han mencionado antes puedes usar ViewData aunque personalmente lo que haria es devolver un boolean de la funcion insertPerson que indica el resultado de la operacion.
En base a ese boolean puedes decidir que mensaje mostrar (y de esta manera separas logica de negocio de la presentacion)
Tu navegador efectua una nueva llamada al Index y el ViewBag se pierde.
Como te han mencionado antes puedes usar ViewData aunque personalmente lo que haria es devolver un boolean de la funcion insertPerson que indica el resultado de la operacion.
En base a ese boolean puedes decidir que mensaje mostrar (y de esta manera separas logica de negocio de la presentacion)
Código (csharp) [Seleccionar]
[HttpGet]
public ActionResul Index(bool? success) {
if(success.HasValue) {
if(success.Value) {
ViewBag.InsertionResult = "Entry inserted correctly";
} else {
ViewBag.InsertionResult = "There was an issue inserting your entry";
}
}
return View();
}
Código (csharp) [Seleccionar]
[HttpPost]
public ActionResult Create(PersonModels person)
{
try
{
// TODO: Add insert logic here
//Adding to database and holding the response in the viewbag.
// This could... return a boolean
var insertResult = ConnectionModels.insertPerson(person);
return RedirectToAction("Index", new { success = insertResult });
}
catch
{
return View("Index");
}
}