Uso de Tempdata en ASP.NET MVC - Mejores prácticas

Estoy usando ASP.NET MVC 3 para construir una aplicación web.

Lo que estoy tratando de hacer es pasar valores entre dos controladores, aunque hay muchas formas de hacerlo que estoy particularmente interesado en usarTempData para esto.

public ActionResult Action1()
{
    string someMessage;
    Test obj = SomeOperation();
    if(obj.Valid)
    {
        someMessage = obj.UserName;
    }
    else
    {
        someMessage = obj.ModeratorName;
    }

    TempData["message"] = someMessage;

    return RedirectToAction("Index");
}

public ActionResult Index()
{
    ViewBag.Message = TempData["message"]

    return View();
}

Así es el uso deTempData aquí correcto? Me refiero a las mejores prácticas de programación es esta forma correcta de usarTempData ?

¿En qué casos en tiempo real?TempData ser usado ?

Nota : He pasado por los siguientes enlaces.

Cuándo usar TempData vs Session en ASP.Net MVChttp://www.gregshackles.com/2010/07/asp-net-mvc-do-you-know-where-your-tempdata-is/

Gracias

Respuestas a la pregunta(3)

Su respuesta a la pregunta