Estoy estudiando para obtener un certificado de MS (70-515).
Estoy confundido con lo que encuentro en línea y lo que leo en una prueba de práctica.
Algunas preguntas sobre SO indican que el uso de un RedirectToAction está enviando al navegador un 302, lo que provoca que cambie su url en la barra de direcciones.Confusión entre Redirect y RedirectToAction
Pero esta es una pregunta de 1 de las pruebas de la práctica:
PREGUNTA:
El controlador principal MVC actualmente tiene sólo la acción Índice defecto. El código relevante se muestra en el siguiente ejemplo de código.
public ActionResult Index()
{
ViewData["Message"] = "Hello!";
return View();
}
Es necesario crear una acción llamada FindID que muestra el parámetro ID introducido como parte de la ruta. Si la ruta de acceso no incluye un parámetro de ID, ASP.NET debe procesar la acción de índice sin cambiar la URL en la barra de direcciones del navegador y no debe lanzar una excepción. ¿Qué segmento de código debe usar?
RESPUESTA CORRECTA:
public ActionResult FindID(int? id)
{
if (!id.HasValue)
return RedirectToAction("Index");
ViewData["Message"] = "ID is " + id.ToString();
return View();
}
EXPLICACIÓN:
Usted puede utilizar el formulario de RedirectToAction ActionResult para causar MVC para procesar una acción diferente desde el interior de una acción. MVC abandona la acción actual y procesa la solicitud como si la ruta hubiera conducido directamente a la acción a la que redirecciona. Básicamente, esto es equivalente a llamar a Server.Transfer en una aplicación ASP.NET estándar.
Redirect ActionResult envía una respuesta "HTTP Error 302 - Found" al navegador, lo que hace que el navegador cargue la URL especificada. Esto cambia la dirección que aparece en la barra de direcciones.
Así:
- ¿Un RedirectToAction dejar la URL en el navegador sin tocar?
- ¿Redirect cambia la URL en el navegador?
- ¿Es correcta la explicación de la prueba de práctica? De eso entiendo que RedirectToAction NO hace un 302.
bien, entonces parece que lo que está escrito en la prueba de práctica de certificación es INCORRECTO (¡horrible!). No hubo respuesta correcta disponible. Me pregunto qué debería hacer si obtengo exactamente esa pregunta en el examen. Supongo que responderé lo mismo que ahora está marcado como correcto en la prueba. – TweeZz