Se utiliza para realizar una HTTP redirect a una determinada URL. Básicamente enviará el código de estado 302 junto con el encabezado de Ubicación en la respuesta para que el cliente emita ahora una nueva solicitud HTTP a esta nueva ubicación.
Normalmente se usaría como este en lugar de llamar explícitamente al constructor:
public ActionResult Index()
{
return Redirect("http://www.google.com");
}
En lo que se refiere a la diferencia entre los dos fragmentos de código, así, es más C# cuestión de MVC relacionados. De hecho, RedirectResult deriva de ActionResult por lo que ambas son sintaxis válidas. Personalmente me quedo con el primero ya que podría, por ejemplo, decidir cambiar esta redirección para devolver un punto de vista:
public ActionResult Index()
{
return View();
}
y si ha especificado explícitamente que el tipo de retorno es RedirectResult
en lugar de ActionResult
ahora tendría que modificarlo a ViewResult
(probablemente no es un gran problema pero es un paso adicional que tienes que hacer).
gracias, pero sé que RediectResult se deriva de ActionResult pero todavía hay algo diferente? cuando deberíamos volver a generar RedirectResult en lugar de Acción Resultado – Stacker
'ActionResult' es una clase abstracta por lo que nunca podrá devolverla. Siempre devuelve una clase derivada como ViewResult, RedirectResult, JsonResult, FileResult, JavaScriptResult, ContentResult, dependiendo de qué desea que haga la acción de su controlador (renderizar una vista, redirigir a otra url, devolver datos formateados JSON, descargar un archivo,. ..). En cuanto a la firma de su método de acción, le recomendaría que siempre tenga 'ActionResult' como tipo de devolución por las razones que mencioné en mi respuesta. –