2011-02-18 29 views
6

Utilicé el siguiente código en uno de mis controladores;asp.net mvc ajax post - redirecttoaction no funciona

  if (Request.IsAjaxRequest()) { 
      return RedirectToAction("PreviewAndSendEmail"); 
     } 

Lo depuré y se trata de línea de retorno pero no se produjo una redirección. ¿Es posible hacer eso dentro de Ajax.BeginForm? Aquí está el código de afeitar;

using(Ajax.BeginForm(new AjaxOptions { LoadingElementId = "loading" })) { 

    <b>Choose E-mail Template : </b>@Html.DropDownList("emailtemps")<br /><br /> 

    <input type="submit" value="Preview & Send" /> 

    <span id="loading" style="display: none;"> 
     <img title="loading..." alt="load" src="@Url.Content("~/Content/App_Icons/gifs/loading.gif")" 
    </span> 

} 
+0

Posiblemente duplicado de http://stackoverflow.com/questions/3534956/how-can-i-redirecttoaction-within-ajax-callback –

Respuesta

15

No se puede redirigir en una acción AJAX desde el servidor. Si desea que su navegador redireccione en una acción AJAX, debe hacerlo desde JavaScript. Obviamente, usar AJAX para redirigir es absolutamente inútil. Si tiene la intención de redireccionar, use un formulario normal Html.Begin y no se moleste con AJAX.

+1

gracias por el comentario. Estoy de acuerdo contigo en eso. Lo usé para mostrar el gif de carga. ¿Hay alguna otra forma de mostrar el gif – tugberk

+0

@Darin, tengo una función ajax llamando a una acción que actualiza un elemento con un formulario para editar un elemento de una lista. that forms contiene un botón de enviar que ejecuta otra acción (Guardar). Quiero que después de que se llame a la acción 'Guardar', la lista principal se debe actualizar con los nuevos valores de este elemento. Lo mismo con el botón Eliminar: después de eliminar un elemento, actualice la lista. – Shimmy

+0

@Darin Dimitrov "Obviamente, usar AJAX para redirigir es absolutamente inútil." ¿Qué te hace pensar eso? Podría ser muy útil para evitar duplicar algún código que exista en otro método de acción. –

1

¿Por qué no llama al PreviewAndSendMailEmail directamente? Como no necesita la redirección en sí (cambio en la URL, etc.), no hay necesidad de usarla.