Hola a todos, un problema común cuando en una acción en MVC se requiere hacer una redirección hacia una acción de un determinado controlador es que el método RedirectToAction(…) trabaja con cadenas de texto, por lo tanto es muy sensible a errores, ya que podemos escribir mal ya sea el nombre de la acción y/o el nombre del controlador, y dicho error solo podemos determinarlo en tiempo de ejecución.

Por ejemplo, si tenemos el siguiente controlador:


public class HomeController : Controller 
{ 
    public ActionResult Index() 
    { 
        return RedirectToAction("Contacto", "Home"); 
    } 

    public ActionResult Contact() 
    { 
        return View(); 
    } 
}

Vamos a tener un problema cuando se ejecute RedirectToAction(“Contacto”, “Home”); ya que el nombre de la acción está mal escrita y en runtime obtenemos el siguiente error:

mvcfutures
Para solucionar dicho problema, MVC Futures nos da la posibilidad de tener en tiempo de compilación detección de ese tipo de problemas además de intellisense, lo primero es instalar el paquete usando Nuget con el siguiente comando:

PM> Install-Package Microsoft.AspNet.Mvc.Futures

Una vez instalado, referenciamos el namespace Microsoft.Web.Mvc y a continuación ya tenemos disponible un RedirectToAction tipado, reescribiendo entonces ahora tenemos:


 return this.RedirectToAction(c => c.Contact());

Y como les comente antes, también tenemos intellisense:

mvcfutures1

Importante: MVC Futures es desarrollador por el equipo de MVC más no está oficialmente soportado, el mensaje del sitio Nuget del paquete:

ASP.NET MVC Futures includes unsupported prototype features for ASP.NET MVC, from the MVC team.

Personalmente he utilizado el paquete varias veces y no he tenido problemas hasta el momento, así que espero les sea de utilidad.

Saludos!