Проверка ASP.NET с использованием AJAX без панелей обновления - PullRequest
1 голос
/ 15 декабря 2010

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

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

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

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

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

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

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

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

Спасибо

Ответы [ 2 ]

1 голос
/ 15 декабря 2010

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

1 голос
/ 15 декабря 2010

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

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

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

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...