我们有一个asp.net Web应用程序,我们目前使用用户注册页面上的更新面板来检查用户是否存在。这样做有几个问题
1-更新面板很慢
2-当用户选中下一个文本框时焦点丢失,因此用户必须在框中手动单击,当更新面板处于弹出窗口时更是如此
3-即使它没有刷新页面,仍然会调用页面加载方法,当我只需要调用触发的事件时。
我们使用的是Web表单,而不是asp.net mvc
我们的问题是执行此操作的最佳方法是:检查用户名是否已存在。
客户端:常规JavaScript,JQuery,JSON,其他可能性? 服务器端检查用户是否存在:另一个aspx页面,Web服务,其他可能性?
您可以使用哪些其他技术?或者您使用哪种技术?
提前致谢..
答案 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());
}