with net mvc from asp c# javascript jquery asp.net-mvc

net - redirect view mvc c#



Redirigir a otra página en ASP.NET MVC usando JavaScript/jQuery (6)

Quiero redirigir de una página a otra en ASP.NET MVC 3.0 usando JavaScript / jQuery / Ajax. En el botón clic evento he escrito código JavaScript como a continuación.

function foo(id) { $.post(''/Branch/Details/'' + id); }

Mi código de controlador es así:

public ViewResult Details(Guid id) { Branch branch = db.Branches.Single(b => b.Id == id); return View(branch); }

Cuando hago clic en un botón, está llamando a la acción Detalles dentro de BranchController, pero no vuelve a la vista Detalles.

No recibí ningún error o excepción. Está mostrando el estado 200 OK en Firebug . ¿Qué hay de malo en mi código y cómo puedo redireccionar a la página de vista Detalles?


Esto se puede hacer usando una variable oculta en la vista y luego usando esa variable para publicar desde el código JavaScript.

Aquí está mi código en la vista

@Html.Hidden("RedirectTo", Url.Action("ActionName", "ControllerName"));

Ahora puede usar esto en el archivo JavaScript como:

var url = $("#RedirectTo").val(); location.href = url;

Funcionó como un encanto para mí. Espero que te ayude a ti también.


No se está suscribiendo a ninguna devolución de llamada correcta en su llamada de $ .post AJAX. Lo que significa que la solicitud se ejecuta, pero no haces nada con los resultados. Si desea hacer algo útil con los resultados, intente:

$.post(''/Branch/Details/'' + id, function(result) { // Do something with the result like for example inject it into // some placeholder and update the DOM. // This obviously assumes that your controller action returns // a partial view otherwise you will break your markup });

Por otro lado, si quieres redirigir, no necesitas AJAX. Utiliza AJAX solo cuando desea permanecer en la misma página y actualizar solo una parte.

Entonces, si solo quieres redirigir el navegador:

function foo(id) { window.location.href = ''/Branch/Details/'' + id; }

Como nota al margen: nunca deberías codificar urls como esta. Siempre debe usar helpers url cuando maneje urls en una aplicación ASP.NET MVC. Asi que:

function foo(id) { var url = ''@Url.Action("Details", "Branch", new { id = "__id__" })''; window.location.href = url.replace(''__id__'', id); }


Puedes usar:

window.location.href = ''/Branch/Details/'' + id;

Pero su código Ajax está incompleto sin éxito o funciones de error.


revisa el código a continuación, esto te ayudará por completo

window.opener.location.href = ''@ Url.Action ("Acción", "EventstController")'', window.close ();

<script type="text/javascript"> function lnkLogout_Confirm() { var bResponse = confirm(''Are you sure you want to exit?''); if (bResponse === true) { ////console.log("lnkLogout_Confirm clciked."); var url = ''@Url.Action("Login", "Login")''; window.location.href = url; } return bResponse; } </script>


// in the HTML code I used some razor @Html.Hidden("RedirectTo", Url.Action("Action", "Controller")); // now down in the script I do this <script type="text/javascript"> var url = $("#RedirectTo").val(); $(document).ready(function () { $.ajax({ dataType: ''json'', type: ''POST'', url: ''/Controller/Action'', success: function (result) { if (result.UserFriendlyErrMsg === ''Some Message'') { // display a prompt alert("Message: " + result.UserFriendlyErrMsg); // redirect us to the new page location.href = url; } $(''#friendlyMsg'').html(result.UserFriendlyErrMsg); } }); </script>