Actualmente estoy trabajando en una lista de datos que necesito mostrar en una vista que representa una lista y muestra para cada elemento la acción correspondiente que se puede ejecutar, como editarlos o borra los. Para la edición no hay ningún problema para afirmar que se trata de una vista particular. Mi problema es cuando quiero eliminar un elemento, tengo dos opciones en el método de publicación.MVC3 RedirectToAction en un método de publicación y supresión ViewBag
//Call directly the list
[HttpPost]
[Authorize]
public ActionResult Delete(int itemId)
{
// logic to delete an item
ViewBag.Error = ""; // The result of the execution
return List();
}
La cosa con esta solución es que la dirección de Internet ya no es el mismo que el primero de ellos: .../Lista, es .../Borrar ahora, no encuentro esta solución grande, el Otra solución es redirigir a la acción, ahora la URL es buena, pero el mensaje de error en ViewBag ya no está visible. ¿Tienen alguna idea mejor?
Buena sugerencia para establecer ViewBag.Error = TempData ["Error"] en el controlador, por lo que la vista no necesita preocuparse por este detalle. –
Sí, solía tenerlo en la vista en sí, pero luego tenía mucha lógica en la vista sobre qué variable mirar. Uso el controlador para tomar toda la información necesaria y pasarla a la vista. – Joshua
Muchas gracias Joshua por la respuesta, funciona bien, y gracias por los recursos de lectura también. – Oflocet