visual studio microsoft español descargar community asp.net-mvc asp.net-mvc-3 validation client-side

asp.net-mvc - microsoft - visual studio installer



Deshabilitar la validación del lado del cliente en MVC 3 "cancelar" botón de envío (3)

OK, he estado probando cosas durante horas y podría necesitar algo de ayuda. Estoy tratando de implementar una página en MVC 3 que tenga botones "atrás" y "próximo". 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 pase lo que pase, el JavaScript de validación del lado del cilent entra en acción y no permitirá que el botón haga su post-back. Estoy pensando que disableValidation solo funciona en MVC 2 tal vez, y se supone que estoy haciendo otra cosa en MVC 3, pero parece que no puedo encontrar ningún ejemplo.


¿Cuál es esta fuerza mística que hace que la respuesta se revele tan pronto como publiques una pregunta en alguna parte?

Parece que en MVC 3 desactiva la validación del lado del cliente en un botón agregando la clase "cancelar". Entonces en mi ejemplo:

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

Funciona genial. Y tampoco se necesita ningún atributo de 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" />


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

<button type="button" onclick="document.location.href(''Index'')">Cancel</button>


Yo 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; }); } });