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

1-更新面板速度慢

2-当用户切换到下一个文本框时,焦点丢失,因此用户必须手动单击该框,当更新面板位于弹出窗口中时,情况更糟

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

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

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

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

你们还可以使用哪些其他技术?

提前致谢..

最佳答案

这是一个来自客户端的示例:http://jsfiddle.net/HackedByChinese/XPd2G/2/

我创建了一个简单的名为delayedkeyup的插件,该插件会在用户几毫秒后停止键入后触发一个事件。当事件触发时,我进行ajax调用(在该示例中,它是一个模拟的JSON端点;您可以用对您的Web服务或标记为WebMethod的页面方法的调用来代替它,该操作可以进行简单的数据库查找)。 ajax调用返回一个JSON消息,指示电子邮件是否有效。

我为结果添加了一个视觉指示器(绿色轮廓好,红色不好)。您可以将其替换为您使用的任何验证方案,或者显示一条消息。

注意:如果您不喜欢使用delaykeyup进行验证,则可以将其替换为.blur.change,以便在用户单击或跳出文本框或分别更改值时进行查找。

WebMethod可能看起来像这样:

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

关于javascript - ASP.NET检查数据库中是否存在电子邮件的最佳方法,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10957627/

10-12 12:53
查看更多