2011-11-25 21 views
9

En ASP.Net MVC 3.0 estoy usando un Ajax.BeginFormASP.Net MVC 3.0 Ajax.BeginForm está redirigiendo a una página?

y golpear a un JsonResult en el éxito de la forma que estoy llamando a una función de jQuery. pero por alguna razón mi forma está redirigiendo a JsonAction

mi punto de vista


@using (Ajax.BeginForm("ActionName", "Controller", null, new AjaxOptions 
      { 
       HttpMethod = "POST", 
       OnSuccess = "ShowResult" 
      }, new { id = "myform" })) 
{ 
    // All form Fields 
    <input type="submit" value="Continue" class="button standard" /> 
} 

Mi controlador de


public JsonResult ActionName(FormCollection collection) 
{ 
    return Json(new { _status },JsonRequestBehavior.AllowGet); 
} 

jQuery


<script type="text/javascript"> 
function ShowResult(data) { 
    // alert("I am at ShowResult"); 
    if (data.isRedirect) { 
     window.location.href = json.redirectUrl; 
    } 
} 

por alguna razón, cuando hago clic en enviar. se corre el JsonResult y redirige la página de acoger/controlador/actionname He incluido mi

<script src="@Url.Content("jquery.unobtrusive-ajax.min.js")"></script> 

en mi layout.cshtml

puede alguien decirme lo que podría estar mal?

Encontré el problema. Ahora tengo que encontrar la solución en enviar estoy validando mi forma

$("#myform").validate({ 
    submitHandler: function (form) { 
    // my logic goes here.... 
}}); 

Si me excluyo la validación funciona Ajax forma como se esperaba. Pero si valido mi formulario y luego forma Ajax no está funcionando como se esperaba Gracias

+0

¿Se llama a su devolución de llamada de javascript? ¿Has verificado con el violinista que tu objeto JSon ha sido devuelto correctamente al navegador? ¿Qué quieres decir con * redirigir a JsonAction *? – Jan

+0

mi script java está en la misma página. Porque está redireccionando a una página diferente. JavaScript no puede ser llamado. y sí, mi objeto Json se devuelve como se esperaba. veo el resultado json en la nueva página redirigida – HaBo

Respuesta

18

cuando esto sucede casi siempre debido a su archivos de script no se cargan

nota:

http://completedevelopment.blogspot.com/2011/02/unobstrusive-javascript-in-mvc-3-helps.html

  1. Establezca el indicador mencionado en el archivo web.config:
    1. Incluya un comentario na vez a la biblioteca jQuery ~/Scripts/jquery-1.4.4.js
    2. incluir una referencia a la biblioteca que se conecta a esta magia ~/Scripts/jquery.unobtrusive-ajax.js

Cargue el fiddler http://fiddler2.com y vea si los scripts se están llamando y cargando.

+0

Veo el problema que todos mis guiones apuntan correctamente.El problema es con la etiqueta id si le doy la etiqueta html id al formulario, entonces esto no está funcionando. si tomo el ID, entonces el formulario Ajax funciona como se esperaba. Pero necesito mi etiqueta de identificación para la forma Ajax, ya que la estoy validando con ella. – HaBo

Cuestiones relacionadas