ASP.NET检查数据库中是否存在电子邮件的最佳方法

时间:2012-06-09 01:09:36

标签: javascript asp.net ajax jquery

我们有一个asp.net Web应用程序,我们目前使用用户注册页面上的更新面板来检查用户是否存在。这样做有几个问题

1-更新面板很慢

2-当用户选中下一个文本框时焦点丢失,因此用户必须在框中手动单击,当更新面板处于弹出窗口时更是如此

3-即使它没有刷新页面,仍然会调用页面加载方法,当我只需要调用触发的事件时。

我们使用的是Web表单,而不是asp.net mvc

我们的问题是执行此操作的最佳方法是:检查用户名是否已存在。

客户端:常规JavaScript,JQuery,JSON,其他可能性? 服务器端检查用户是否存在:另一个aspx页面,Web服务,其他可能性?

您可以使用哪些其他技术?或者您使用哪种技术?

提前致谢..

1 个答案:

答案 0 :(得分:2)

以下是客户端的示例:http://jsfiddle.net/HackedByChinese/XPd2G/2/

我创建了一个名为delayedkeyup的简单插件,它会在用户在几毫秒后停止输入后触发事件。当事件触发时,我进行ajax调用(在示例中,它是一个模拟的JSON端点;您可以通过调用Web服务或标记为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());
}