2013-02-20 5 views
0

Я давно разработчик Windows Form, пытаясь понять, как сделать веб-разработку. Как говорится в названии, я уверен, что хочу двигаться вперед с ASP.NET MVC. Я также уверен, что ответ будет лежать где-то в области Javascript, jQuery (и jQueryUI), и ни у кого из них у меня не было возможности учиться.Как выполнить комплексную проверку данных на стороне клиента в ASP.NET MVC 4

В нашем текущем приложении Windows у нас есть формы, в которых используются элементы управления табуляторами, где каждый элемент управления вкладками имеет множество элементов управления для ввода данных. Итак, ниже приведены типы вопросов, которые мне нужно сделать (на стороне клиента)

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

Я мог бы продолжать и продолжать, но я сомневаюсь, что дополнительные примеры изменят ответ.

Так что для ясности мне не нужно что-то вроде того, что я могу сделать с аннотациями данных mvc, где я могу использовать атрибут для пометки определенного поля по мере необходимости или в пределах определенного диапазона. Мне нужен такой тип проверки, который хранится в кучу другой проверки.

Итак, есть ли лучшее решение для такого рода комплексной проверки на стороне клиента? Есть ли какая-то сторонняя библиотека Javascript, которая может это позволить?

В моем приложении Windows я смог написать небольшие правила оболочки, которые все вытекают из общего базового класса. Например, например, у меня есть правило с методом addChilren, которое позволяет добавлять либо другие объекты, полученные из правила базового класса, либо просто другие элементы управления, и это правило может быть обновлено во время выполнения, для чего требуется 1 или больше детей объектов ...

и тогда, конечно, это правило «RequireOneOrMore» может затем быть повторно использованы в других местах и ​​даже быть переданы в качестве ребенка к другим правилам ...

Я надеюсь, что некоторые из этих имеет смысл ....

Итак, пока я работаю через свою книгу mvc в своей книге Javascript, кто-нибудь может предложить какие варианты я могу исследовать, чтобы выполнить это?

Спасибо, Ионафан

ответ

2

Я полностью согласен с вами, что Аннотации данных очень ограничены в аспекте выполнения сложных правил проверки.

Но прежде чем даже подумать о проверке на стороне клиента, вы должны убедиться, что все правила проверки, независимо от того, насколько сложны, как минимум, выполняются на сервере. Я отлично разбираюсь в том, чтобы выполнять сложные проверки на стороне сервера, которые я бы рекомендовал вам: FluentValidation.NET. Он имеет большую интеграцию с ASP.NET MVC, позволяя вам обрабатывать произвольно сложные правила проверки.

Как только вы настроите проверку на стороне сервера, вы можете начать думать об опыте пользователя и, кроме того, дополнительно проверить на стороне клиента. Для сложных правил я бы рекомендовал вам избавиться от сценария jquery.unobtrusive.validate.js, а затем использовать плагин jquery.validate.js напрямую.Это означает, что в принципе можно написать правила проверки для себя определенной формы:

$('form').validate({ 
    rules: { 
     // ... here you could write your validation rules 
     // you could also extend the plugin by writing custom 
     // validation methods to handle arbitrarily complex scenarios 
    } 
}); 

Я приглашаю вас прочитать documentation of the plugin прямо сейчас, чтобы ознакомиться с синтаксисом.

Но, поскольку вы сказали, что вы очень новичок в jQuery, прежде чем делать какие-либо разработки на стороне клиента с помощью валидации и плагинов, ваша первая задача - изучить jQuery. Отличное место для начала здесь: http://learn.jquery.com/

Смежные вопросы