MVC 4, Jquery Mobile, Ajax.BeginForm que hace que los formularios se envíen dos veces
jquery-mobile asp.net-ajax (1)
¿Alguien sabe de algún error u otra información para explicar por qué cuando se utiliza MVC4 con jquery mobile, cualquier formulario creado con Ajax.BeginForm da como resultado que el formulario se envíe dos veces al controlador.
Originalmente, pensé que, como estoy utilizando la compilación js de que el mismo archivo js podría haberse incluido dos veces y podría estar desencadenando al enviar el formulario, sin embargo, ese no es el caso, mi lista de archivos js es:
jquery-1.6.4.js
jquery-ui.1.8.11.js
jquery.mobile-1.1.0.js
jquery.unobtrusive-ajax.js
jquery.validate.js
knockout-2.0.0.js
MicrosoftAjax.js
MicrosoftMvcAjax.js
MicrosoftMvcValidation.js
Modernizr.js
Dentro del proyecto Ajax está completamente habilitado para todo, es decir, no estoy desactivando nada a través de mobileinit.
No he publicado ningún código de formulario porque ocurre literalmente en todos los formularios (un formulario con un campo y un botón de envío generará el envío dos veces), pero solo cuando se utiliza Ajax.BeginForm.
Html.BeginForm no presenta ninguno de estos problemas.
He estado atrapado en esto por unos días, así que cualquier ayuda sería muy apreciada
jQuery Mobile de forma predeterminada activa cualquier envío de formularios y realiza su propia solicitud de AJAX. Para detener este comportamiento, puede colocar el atributo data-ajax="false"
en cualquier etiqueta <form>
. También asegúrese de detener el comportamiento normal del formulario para que no se presente normalmente, algo como:
$(''#my-form'').on(''submit'', false);
Documentos: http://jquerymobile.com/demos/1.1.0/docs/forms/forms-sample.html
También podría usar el jQuery Mobile AJAX incorporado en lugar de incluir JS extra para él. Lo cual solo requeriría que usted haga los atributos de action
de los formularios al archivo del lado del servidor al que se publican.