tutorial knockoutjs knockout example ejemplos array javascript asp.net-mvc validation knockout.js

javascript - example - knockoutjs observable



Modelos de vista de mapa para KnockoutJS ValidaciĆ³n (4)

He estado construyendo una página usando ASP.NET MVC 2 usando KnockoutJS, KnockoutJS Mapping plugin, y jQuery 1.7.1. Me gustaría poder utilizar también el complemento de validación KnockoutJS (que se encuentra here ). Sin embargo, necesito que tenga lugar la validación del lado del servidor y del cliente.

¿Es posible que mis modelos de vista se asignen al here que utiliza el método .extend ()?

EDITAR: Ejemplo. Automáticamente gire esto:

[Required] public string Firstname { get; set; }

Dentro de esto:

var viewmodel = { firstname: ko.observable().extend({ required: true }); }


El complemento de validación funciona de la manera en que extiende los observables que desea validar.

No importa si se crean a partir de asignaciones, simplemente cree una función que ejecute después de que se haya realizado la asignación y agregue toda la validación que desee.

O, si lo desea, puede utilizar los enlaces de validación. Lee el archivo Léame en Github para la validación por nocaut y verás cómo lo hacen.


En el Kit de herramientas de controles de Mvc implementé un motor que habilita la validación Mvc habitual (anotaciones de datos o lo que sea) en knockout.js. Tanto la validación del lado del cliente como la del servidor se pueden habilitar. Además, los knockout se pueden utilizar con los ayudantes de Mvc, algunos enlaces se deducen automáticamente, etc.


Recomiendo usar la validación MVC incorporada en el lado del cliente, puede que necesite invocarlo, intente esto

$.validator.unobtrusive.parse(yourFormElement)

Código de: https://.com/a/5669575/941536

Sin embargo, no estoy seguro si MVC2 tiene una validación discreta en el lado del cliente, no estoy seguro si una actualización a MVC3 sería una opción para usted si es necesario.


Si está utilizando knockoutjs y jquery, se me ocurrió el siguiente método muy simple para realizar la validación básica del lado del cliente.

Donde quiera que desee mostrar el mensaje de error en su página, incluya una etiqueta de intervalo como esta:

<span name="validationError" style="color:Red" data-bind="visible: yourValidationFunction(FieldNameToValidate())"> * Required. </span>

Obviamente, necesitas escribir "yourValidationFunction" para hacer lo que quieras que haga. Solo necesita devolver verdadero o falso, verdadero significa mostrar el error.

Puede usar jquery para evitar que un usuario continúe si se muestran errores de validación. Probablemente ya tienes un botón de guardar que activa una función javascript para hacer algo de ajax o lo que sea, así que solo incluye esto en la parte superior:

if ($("[name=''validationError'']:visible").length > 0) { alert(''Please correct all errors before continuing.''); return; }

Esto es mucho más simple y más flexible que muchas otras soluciones de validación que existen. Puede ubicar su mensaje de error donde desee, y no necesita aprender a usar alguna biblioteca de validación, y este método funciona independientemente de la tecnología del lado del servidor.