Подтвердить что ты не робот

Модели просмотра карт для проверки нокаутаJS

Я создавал страницу с использованием ASP.NET MVC 2 с использованием KnockoutJS, плагина Mapping KnockoutJS и jQuery 1.7.1. Я также хотел бы использовать плагин ValidationJS Validation (здесь здесь). Тем не менее, мне нужно иметь проверку как на сервере, так и на стороне клиента.

Возможно ли, чтобы мои модели представлений отображались в плагин ValidationJS Validation, который использует метод .extend()?

EDIT: Пример. Автоматически поворачивайте это:

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

В это:

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

Ответ 1

В Mvc Controls Toolkit Я реализовал механизм, который позволяет обычную проверку Mvc (аннотации данных или что-то еще) на knockout.js.Both client сторона и проверка на стороне сервера могут быть включены. Более того, нокаут можно использовать с помощниками Mvc, некоторые привязки выводятся автоматически и т.д.

Ответ 2

Если вы используете knockoutjs и jquery, я придумал следующий очень простой способ для проверки базовой стороны на стороне клиента.

Везде, где вы хотите отобразить сообщение об ошибке на своей странице, введите тег span следующим образом:

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

Очевидно, вам нужно написать "yourValidationFunction", чтобы делать все, что вы хотите. Это просто нужно вернуть true или false, true означает отображение ошибки.

Вы можете использовать jquery для предотвращения продолжения пользователем, если будут отображаться ошибки проверки. Вероятно, у вас уже есть кнопка сохранения, которая запускает функцию javascript для выполнения какого-либо ajax или что-то еще, поэтому просто включите это вверху:

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

Это намного проще и гибче, чем многие другие решения для проверки. Вы можете разместить сообщение об ошибке там, где хотите, и вам не нужно научиться использовать некоторую библиотеку проверки, и этот метод работает независимо от технологии на стороне сервера.

Ответ 3

Я бы рекомендовал использовать встроенную проверку MVC-клиентов, вам может потребоваться вызвать ее, попробуйте следующее:

$.validator.unobtrusive.parse(yourFormElement)

Код от: fooobar.com/questions/304715/...

Не уверен, что MVC2 имеет ненавязчивую проверку на стороне клиента, но не уверен, что при необходимости обновление для MVC3 будет для вас.

Ответ 4

Плагин проверки правильности работает таким образом, что вы расширяете наблюдаемые значения, которые вы хотите проверить.

Не имеет значения, созданы ли они из сопоставлений, просто создайте функцию, которую вы запускаете после завершения преобразования, и добавьте всю необходимую проверку.

Или, если вы хотите, вы можете использовать привязки проверки. Прочитайте Readme on Github для проверки нокаута, и вы увидите, как они это делают.