Desactivar la validación del lado del cliente en MVC 3 botón" cancelar " enviar


OK, he estado probando cosas durante horas y me vendría bien algo de ayuda. Estoy tratando de implementar una página en MVC 3 que tiene botones "atrás" y "siguiente". Cuando se hace clic en el botón atrás, quiero desactivar la validación MVC del lado del cliente para que mi método de acción se ejecute y envíe al usuario a la página web lógica anterior. He intentado esto:

<script type="text/javascript">
  document.getElementById("backButton").disableValidation = true;
</script>

Y esto:

<input type="submit" name="backButton" value="← Back" 
 title="Go back to step 1." disableValidation="true" />

Pero no importa qué, el JavaScript de validación del lado cilent se activa y no deja que el botón haga su post-back. Soy pensar que disableValidation solo funciona en MVC 2 tal vez, y se supone que debo estar haciendo algo más en MVC 3, pero parece que no puedo encontrar ningún ejemplo.

Author: Community, 2011-03-19

3 answers

¿Qué es esta fuerza mística que hace que la respuesta se revele tan pronto como publicas una pregunta en algún lugar?

Parece que en MVC 3 deshabilita la validación del lado del cliente en un botón al agregarle la clase "cancel". Así que en mi ejemplo:

<input type="submit" name="backButton" value="← Back"
 title="Go back to step 1." class="cancel" />

Funciona muy bien. Y tampoco se necesita ningún atributo ID. Si tiene una clase de estilo real en el botón, simplemente haga esto:

<input type="submit" name="backButton" value="← Back"
 title="Go back to step 1." class="style-name cancel" />
 122
Author: Glenn Doten,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2011-03-19 18:16:08

Los scripts de validación parecen estar vinculados al tipo de envío input. Al cambiar cancel a un botón, la validación se omite:

<button type="button" onclick="document.location.href('Index')">Cancel</button>
 1
Author: David,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2012-03-21 06:12:50

Uso esto para el botón

$("button").each(function (elem) {
    var button = $($("button")[elem]);
    button.addClass('cancel');

    if (button.attr('type') == 'submit') {

        button.click(function (e) {
            var validator = button.closest('form').validate();
            validator.cancelSubmit = true;
        });
    }
});
 -1
Author: user3963360,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-08-21 08:42:38