2012-09-10 29 views
10

Estaba intentando redirigir desde el controlador de cuenta (Cuenta/Inicio de sesión) a Usuario/Índice haciendo la sintaxis siguiente.RedirectToAction no cambia la URL del navegador

return RedirectToAction("Index", "User"); 

muestra la vista correcta, pero la URL aún persiste como Cuenta/Iniciar sesión. ¿Alguien puede sugerir cómo puedo lograr lo mismo. He intentado algunas de las búsquedas de Google, pero ninguna de ellas me funciona.

+0

son usted que llama la acción del controlador con AJAX? Porque si este es el caso, no es sorprendente que la barra de direcciones del navegador no cambie; ese es el objetivo de AJAX. –

+0

Estoy usando @using (Html.BeginForm ("Index", "User", FormMethod.Post)) tiene el tipo de entrada submit. – Pradeep

+0

¿Funcionará para usted el manejo de un evento y la adición de window.location.href ('url')? –

Respuesta

30

Es un problema causado por jQuery-mobile. De forma predeterminada, jQM hará que los formularios usen llamadas ajax, ya que así es como se realiza la navegación de la página en el marco. AJAX navigation is explained in more detail here.

La solución es agregar data-ajax="false" a la etiqueta de formulario utilizada para la llamada inicial al servidor.

Así que su forma se vería así:

@using (Html.BeginForm("Login", "Account", FormMethod.Post, new { data_ajax = "false" })) 
+0

Eso todavía no funciona para mí. – Pradeep

+0

He actualizado la respuesta, esta debería funcionar. – Alejo

+0

Quiero hacerlo en mi controlador no en la vista. – Pradeep

Cuestiones relacionadas