2012-06-09 4 views
2

У нас есть веб-приложение asp.net, и в настоящее время мы используем панель обновления на странице регистрации пользователей, чтобы проверить, существует ли пользователь. Есть несколько вопросов, делая этоASP.NET Лучший метод проверки наличия электронной почты в базе данных

1- панель обновления медленно

2-, когда пользователь вкладку к следующему текстовому полю фокуса теряются так что пользователь должен щелкнуть вручную обратно в коробке, это даже хуже, когда панель обновления находится во всплывающем окне

3, даже если он не обновляет страницу, методы загрузки страницы по-прежнему вызываются, когда мне нужно только вызвать событие.

Мы используем веб-формы, в отличие от ASP.NET MVC

Наш вопрос в том, что это лучший способ, чтобы сделать эту операцию: проверить, если имя пользователя уже существует.

клиентская сторона: обычный JavaScript, JQuery, JSON, другие возможности? На стороне сервера, чтобы проверить, существует ли пользователь: другая страница aspx, веб-сервис, другие возможности?

Какие другие методы возможны или вы используете?

Заранее спасибо ..

ответ

2

Вот пример, со стороны клиента: http://jsfiddle.net/HackedByChinese/XPd2G/2/

Я создал простой плагин под названием delayedkeyup, который стреляет событие после того, как пользователь перестает печатать после нескольких миллисекунд. Когда событие срабатывает, я делаю ajax-вызов (в примере это высмеченная конечная точка JSON, вы замените ее на вызов вашей веб-службе или метод страницы, помеченный WebMethod, который выполняет простой поиск в БД). Ajax-вызов возвращает сообщение JSON, указывающее, действительно ли письмо является действительным.

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

Примечание: если вам не нравится проверку с помощью delayedkeyup, вы можете просто заменить его .blur или .change, поэтому поиск выполняется, когда пользователь щелкает или петельки из текстового поля, или изменяет значение (соответственно).

WebMethod может выглядеть примерно так:

[WebMethod] 
public string ValidateEmail(string email) 
{ 
    var valid = IsEmailValid(email); // your validation routine 
    return string.Format("{{ \"validEmail\":{0} }}", valid.ToString().ToLower()); 
} 
+1

благодаря веб-сервис кажется лучшим способом. – user1253073

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