我正在使用.net / c#/ jQuery开发一个Web应用程序。
我想在用户注册页面中开发一个AJAX函数,以检测其他人是否已经选择了用户名。
由于寄存器表单位于用户控件中,并且scriptmanager控件位于母版页中,因此我在该用户控件中添加了ScriptManagerProxy控件。 js函数被包装到一个名为a.js。
的文件中Web服务称为Vet.asmx。被叫时,它总是报告" Vet"是不确定的,但我不知道为什么。 ScriptManagerProxy的代码是:
<asp:ScriptManagerProxy ID="ScriptManagerProxy1" runat="server">
<Scripts>
<asp:ScriptReference Path="~/Menu/a.js" />
</Scripts>
<Services>
<asp:ServiceReference Path="~/WebService/Vet.asmx" />
</Services>
</asp:ScriptManagerProxy>
Vet.cs是
public Vet()
{
//Uncomment the following line if using designed components
//InitializeComponent();
}
[WebMethod]
public string SearchUserName(string name)
{
...
}
我的a.js代码
jQuery("[id$='tb_UserName']").blur(function() {
var login = jQuery("[id$='tb_UserName']").val();
Vet.SearchUserName(login, SearchUserNameCallback);
});
function SearchUserNameCallback(result) {
if (result == "Y") {
jQuery('#userInfo').html("This user name has already been taken");
} else {
jQuery('#userInfo').html("Congratulations!You have a new user name.");
}
}
我确定web方法和js功能除了找不到&#34; Vet&#34;之外没有任何问题。网络服务。有什么想法吗?
答案 0 :(得分:2)
您的Vet
课程是否饰有[System.Web.Script.Services.ScriptService]属性?
答案 1 :(得分:0)
我会使用启用了ajax的wcf服务。通过jQuery ajax进行连接绝对容易。 或者,如果不需要完整的Web服务,您可以将Web方法集成到您的页面中,并直接从客户端调用webmethod。