Mensaje de éxito de ASP.NET MVC

Este es un método de ejemplo que tengo que elimina un registro de mi aplicación:

[Authorize(Roles = "news-admin")] public ActionResult Delete(int id) { var ArticleToDelete = (from a in _db.ArticleSet where a.storyId == id select a).FirstOrDefault(); _db.DeleteObject(ArticleToDelete); _db.SaveChanges(); return RedirectToAction("Index"); } 

Lo que me gustaría hacer es mostrar un mensaje en la vista del índice que diga algo como: “Se ha eliminado el artículo de Lorem ipsum” ¿cómo haría esto? Gracias

Aquí está mi método de índice actual, por si acaso:

  // INDEX [HandleError] public ActionResult Index(string query, int? page) { // build the query var ArticleQuery = from a in _db.ArticleSet select a; // check if their is a query if (!string.IsNullOrEmpty(query)) { ArticleQuery = ArticleQuery.Where(a => a.headline.Contains(query)); //msp 2011-01-13 You need to send the query string to the View using ViewData ViewData["query"] = query; } // orders the articles by newest first var OrderedArticles = ArticleQuery.OrderByDescending(a => a.posted); // takes the ordered articles and paginates them using the PaginatedList class with 4 per page var PaginatedArticles = new PaginatedList
(OrderedArticles, page ?? 0, 4); // return the paginated articles to the view return View(PaginatedArticles); }

Una forma sería usar TempData:

 [Authorize(Roles = "news-admin")] public ActionResult Delete(int id) { var ArticleToDelete = (from a in _db.ArticleSet where a.storyId == id select a).FirstOrDefault(); _db.DeleteObject(ArticleToDelete); _db.SaveChanges(); TempData["message"] = ""Lorem ipsum article has been deleted"; return RedirectToAction("Index"); } 

y dentro de la acción de Index , podría obtener este mensaje de TempData y utilizarlo. Por ejemplo, podría pasarlo como una propiedad de su modelo de vista que se pasará a la vista para que pueda mostrarlo:

 public ActionResult Index() { var message = TempData["message"]; // TODO: do something with the message like pass to the view } 

ACTUALIZAR:

Ejemplo:

 public class MyViewModel { public string Message { get; set; } } 

y entonces:

 public ActionResult Index() { var model = new MyViewModel { Message = TempData["message"] as string; }; return View(model); } 

y dentro de la vista fuertemente tipada:

 
<%: Model.Message %>