Почему я должен использовать PropertyProxyValidator?ASP.NET - PullRequest
3 голосов
/ 15 марта 2010

Я понимаю, что PropertyProxyValidator интегрируется с пользовательским интерфейсом ASP.NET. Но он не может выполнить проверку на стороне клиента. Как это может отличаться от добавления метки в пользовательском интерфейсе и заполнения ошибок на стороне сервера?

Кроме того, если я использую блок приложения для валидации, какие подходы вы предлагаете для валидации на стороне клиента, если я не хочу дублировать правила на стороне сервера и на стороне клиента?

Ответы [ 2 ]

2 голосов
/ 16 марта 2010

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

Использование PropertyProxyValidator - большая работа. Все должно быть подключено. Лучшее решение - создать простой метод расширения и зарегистрировать PropertyProxyValidator в коде. Это делает все намного проще. Вот пример:

protected override void OnPreInit(EventArgs e)
{
    this.LastNameTextBox.For<Person>().AddValidator(p => p.LastName);
    base.OnPreInit(e);
}

Вы можете найти больше информации об этом подходе здесь .

Конечно, в этом случае это все еще сторона сервера, но это решение значительно упрощает последующую проверку на стороне клиента, поскольку оно централизует создание валидаторов.

Tuzo уже ссылается на эту статью. Это единственное упоминание о проверке на стороне клиента с помощью VAB, которое я нашел в Интернете.

1 голос
/ 16 марта 2010

Как вы говорите, использование PropertyProxyValidator мало чем отличается от использования валидатора ASP.NET (или использования метки) на стороне сервера. Основным преимуществом является интеграция с блоком приложения проверки. (Предполагая, что вы видите это как преимущество. :))

Если вы уже создали свои правила с помощью VAB, вы можете использовать PropertyProxyValidator для их интеграции в ASP.NET. Если у вас многоуровневое приложение, это позволит вам определить валидации один раз (скажем, используя атрибуты на сущностях) и выполнить валидацию на стороне сервера ASP.NET. Если проверка прошла успешно, то можно вызвать бизнес / сервисный уровень, где можно будет выполнить ту же проверку. Это позволяет централизовать проверку в одном месте (повышенная удобство обслуживания) и может сохранять вызовы на уровне бизнеса / обслуживания (выигрыш в производительности).

Для проверки клиентского браузера с использованием VAB, я не думаю, что есть много хороших вариантов. Дэвид Хейден упоминает об использовании AJAX для достижения "проверки на стороне клиента" . Пользовательский интерфейс улучшен , но серверные вызовы не сохраняются, поэтому это не полное решение. В другой статье, Проверка на стороне клиента с использованием блоков приложения проверки , описывается анализ конфигурации VAB для создания средств проверки на стороне клиента. Этот подход также имеет недостатки (довольно много пользовательского кода - сколько работы мы здесь экономим?).

...