Какая библиотека проверки для ASP.NET MVC?

Я пытаюсь решить, какой подход к валидации выбрать для нового проекта ASP.NET MVC. (А вау есть много вариантов!)

В проекте используется NHibernate, поэтому первым, что я рассмотрел, был NHibernate Validator (из-за тесной интеграции с NHibernate). Однако, насколько я вижу, у этой тесной интеграции есть только несколько преимуществ:

1) Схемы БД, сгенерированные NHibernate, будут включать детали проверки (например, длина столбцов будет установлена ​​на максимально допустимое значение при проверке). (Это на самом деле меня не интересует, так как я генерирую схемы вручную.)

2) NHibernate выдаст исключение, если вы попытаетесь сохранить данные, которые не соответствуют спецификациям проверки. (Мне кажется, это излишне, поскольку данные, по-видимому, уже будут проверены любым механизмом, который вы выберете, прежде чем их сохранить)

Если есть больше преимуществ для NHibernate Validator, пожалуйста, дайте мне знать!

Другие библиотеки, о которых я немного читал, включают:

  • MS DataAnnotations
  • Замок Валидатор
  • Что-то другое?

Я также думал об использовании xVal для обеспечения проверки на стороне клиента из того же набора правил. Тем не менее, я слышал, что ASP.NET MVC v2 будет включать что-то похожее на xVal (интеграция с jquery) из коробки? Будет ли эта новая включенная функциональность сделать некоторые другие избыточными?

Итак, я в основном спрашиваю у людей совета, в каком направлении двигаться дальше. Я не хочу реализовывать какую-то конкретную схему, только чтобы вырвать ее, когда другая станет доминирующей технологией.

Что сработало для вас? Какой вариант, по вашему мнению, имеет / будет иметь преимущество?

Спасибо!

4 ответа

Решение

Я использую FluentValidation вместе с плагином проверки jQuery и до сих пор не могу найти ситуацию, с которой они не могут справиться.

Мне нравится xVal.

Вы можете очень легко реализовать проверку клиента и сервера с его помощью. Также есть поддержка проверки столбцов (свойств) на объектах, которые вы хотели бы использовать.

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

DataAnnotations, реализованные классами собеседников и проверкой клиента JQuery

Убедитесь, что вы используете MVC Preview 2

Другие вопросы по тегам