2010-12-15 2 views
1

Я ищу способ использования настраиваемых валидаторов ASP.NET для проверки ввода без использования UpdatePanels и без полной обратной передачи.Проверка ASP.NET с использованием AJAX без панелей обновления

Валидаторы делают несколько вещей - не только длину/регулярное выражение, но и некоторые другие нестандартные вещи.

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

Я вижу несколько вариантов, но ни один не идеальны:

1) Сосать его и использовать UpdatePanels. Я в группе «UpdatePanels are evil», поэтому я бы предпочел не делать этого.

2) Без использования контрольных проверок вручную проверяйте поля, передавая значения статическому методу PageMethod через jQuery или любую другую инфраструктуру AJAX. Это потребовало бы клиентского и серверного кодирования каждый раз, когда мне нужно было использовать валидатор.

3) Используйте проверку jQuery (или любую другую фреймворк javascript) для проверки клиента, а затем, если они каким-то образом пройдут, у вас есть средства проверки кода сервера для полной обратной передачи. Это потребует, чтобы все правила проверки были записаны как в javascript, так и на C#. Я не забочусь о полной неудачной обратной передаче в этот момент, потому что проверка javascript заставит настоящих пользователей, которые не пытались меня заглушить.

Есть ли альтернатива для использования реальных элементов управления CustomValidator с частичной обратной записью, только код C#, для проверки ввода без UpdatePanels и без большого избыточного javascript?

Благодаря

ответ

1

Я хотел бы использовать смесь из 2 и 3.

проверки на стороне сервера первого будет существовать независимо ...

Так что я хотел бы сделать поля, которые требуют простой логики проверки javascript (числа, текст, длины строк, строчные определенные форматы и т. д.) без обратных вызовов ajax, а затем использовать обратные вызовы на сервере, где должны выполняться бизнес-правила или иначе более сложная проверка, так что сложные правила кодируются только один раз.

Если вам нужно было выбрать между очень быстрым ответом (или без задержки ... только js) или действительными данными, я бы ожидал, что действительные данные выиграют ... Поэтому, используя 2 и 3 вместе, мы надеемся, дают вам более быстрый ответ, но без ущерба для достоверных данных.

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

+0

Спасибо за подсказку. Я сделаю это. И я с вами в проблеме UpdatePanel о передаче данных - вот одна из главных причин, почему я не поклонник. –

1

Честно говоря, я думаю, что 2 является хорошим вариантом. CustomValidator или нет, вы будете писать тот же код сервера, чтобы выполнить проверку. Вы можете сделать весь код проверки на C# и просто написать JS, чтобы вызвать ваш метод проверки, который может быть PageMethod или отдельным ashx. И действительно, вы, вероятно, могли бы написать одну функцию JS, которая принимает параметры, чтобы сделать вызов AJAX довольно легко.

+0

Спасибо за помощь. –

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