2008-11-29 24 views
15

Digamos que tengo un controlador con un Método de índice y un Método de actualización. Después de que se complete la Actualización, quiero redireccionar a Index(). ¿Debo usar return RedirectToAction ("Index") o puedo simplemente llamar a Index()? ¿Hay una diferencia?asp.net mvc RedirectToAction ("Índice") vs Índice()

public ActionResult Index() 
{ 
    return View("Index", viewdata); 
} 

public ActionResult Update() 
{ 
    // do updates 
    return RedirectToAction("Index"); or 
    return Index(); 
} 

Respuesta

23

Utilice la redirección de lo contrario la URL en el cliente seguirá siendo la misma que la URL publicada en lugar de la URL que corresponde a la acción del índice.

+1

thx, no pensé en ese – terjetyl

10

Otras cosas a considerar:

  • acción de redirección después de un POST actuará más bien cuando el usuario pulsa el botón de actualización, ya que no se les pedirá que vuelva a enviar los datos al servidor.

  • Los datos del formulario se perderán con la acción de redirección a menos que los mantenga explícitamente a través de, por ejemplo, TempData. Sin hacer esto, sus controles de formulario no tendrán ningún valor después de un POST, lo que puede ser indeseable en algunos casos.

+0

+1 para la consideración de datos de reenvío, ese tomó la decisión por mí. – koenmetsu