C# 验证用户名ajax、json和asp.net
你好,C# 验证用户名ajax、json和asp.net,c#,jquery,asp.net,json,C#,Jquery,Asp.net,Json,你好, I am trying to verify if a username is taken or available by asp.net page [CheckusernameAvailable.aspx] <%@ Language="C#" AutoEventWireup="true" CodeBehind="CheckUsernameAvailable.aspx.cs" Inherits="Services_UsernameAvailable" %> 使用jq
I am trying to verify if a username is taken or available by
asp.net page [CheckusernameAvailable.aspx]
<%@ Language="C#" AutoEventWireup="true" CodeBehind="CheckUsernameAvailable.aspx.cs" Inherits="Services_UsernameAvailable" %>
使用jquery将请求发送到
asp.net页面。ASP.net页面是
很明显,当我
我让它在日志中记下一个条目
数据库我的SQL server数据库
确实显示正在传递的用户名
但是,它正在返回一个值
出于某种原因,客户端
html/javascript对此没有响应。
我不确定它是否在周末
我的html/javascript或者我的
asp.net页未返回json
信息正确吗?这是我的
json的第一次尝试
asp.net page [CheckusernameAvailable.aspx]
<%@ Language="C#" AutoEventWireup="true" CodeBehind="CheckUsernameAvailable.aspx.cs" Inherits="Services_UsernameAvailable" %>
此时将显示“检查可用性”框
在html页面上,但它从未更改
即使sql server显示它
运行存储过程
asp.net page [CheckusernameAvailable.aspx]
<%@ Language="C#" AutoEventWireup="true" CodeBehind="CheckUsernameAvailable.aspx.cs" Inherits="Services_UsernameAvailable" %>
Html文件
asp.net page [CheckusernameAvailable.aspx]
<%@ Language="C#" AutoEventWireup="true" CodeBehind="CheckUsernameAvailable.aspx.cs" Inherits="Services_UsernameAvailable" %>
asp.net page [CheckusernameAvailable.aspx]
<%@ Language="C#" AutoEventWireup="true" CodeBehind="CheckUsernameAvailable.aspx.cs" Inherits="Services_UsernameAvailable" %>
我认为您的问题在于需要使用
[WebMethod]
属性来修饰方法,并且需要修饰类,以便将其暴露给客户端脚本。我通常使用web服务文件,.asmx
asp.net page [CheckusernameAvailable.aspx]
<%@ Language="C#" AutoEventWireup="true" CodeBehind="CheckUsernameAvailable.aspx.cs" Inherits="Services_UsernameAvailable" %>
事实上,我不确定您是否可以像现在这样使用常规类文件,但是创建一个web服务文件并引用它使用的代码,然后将其应用到您自己的文件中,看看它是否有效
asp.net page [CheckusernameAvailable.aspx]
<%@ Language="C#" AutoEventWireup="true" CodeBehind="CheckUsernameAvailable.aspx.cs" Inherits="Services_UsernameAvailable" %>
另外,我很惊讶您的代码能够正常工作,您的数据参数看起来不像是
json
格式。应该是数据:“{}”
据我所知。我相信您的问题是,您需要使用[WebMethod]
属性来修饰您的方法,并且需要修饰类,以便向客户端脚本公开它。我通常使用web服务文件,.asmx
asp.net page [CheckusernameAvailable.aspx]
<%@ Language="C#" AutoEventWireup="true" CodeBehind="CheckUsernameAvailable.aspx.cs" Inherits="Services_UsernameAvailable" %>
事实上,我不确定您是否可以像现在这样使用常规类文件,但是创建一个web服务文件并引用它使用的代码,然后将其应用到您自己的文件中,看看它是否有效
asp.net page [CheckusernameAvailable.aspx]
<%@ Language="C#" AutoEventWireup="true" CodeBehind="CheckUsernameAvailable.aspx.cs" Inherits="Services_UsernameAvailable" %>
另外,我很惊讶您的代码能够正常工作,您的数据参数看起来不像是json
格式。应该是数据:“{}”
据我所知。尝试Response.Clear()
和Response.End()
,看看这是否解决了您的问题
asp.net page [CheckusernameAvailable.aspx]
<%@ Language="C#" AutoEventWireup="true" CodeBehind="CheckUsernameAvailable.aspx.cs" Inherits="Services_UsernameAvailable" %>
protected void Page_Load(object sender, EventArgs e)
{
Response.Clear();
Response.ContentType = "application/json";
string NameToLookUp = Request.QueryString["username"];
if (NameToLookUp == null) {
NameToLookUp = "";
}
DbaseExecSpWithReturnValue Sproc = new DbaseExecSpWithReturnValue();
Sproc.SetSp("sp_CheckUsernameAvailable");
Sproc.AddParam(1);
Sproc.AddParam("Username",SqlDbType.Char,NameToLookUp,20);
int RetVal = Sproc.Execute();
Sproc.Close();
if (RetVal == 0)
{
Response.Write(@"'{""success"": false}'");
}
if (RetVal == 1)
{
Response.Write(@"'{""success"": true}'");
}
Response.End();
}
尝试Response.Clear()
和Response.End()
,看看这是否解决了您的问题
asp.net page [CheckusernameAvailable.aspx]
<%@ Language="C#" AutoEventWireup="true" CodeBehind="CheckUsernameAvailable.aspx.cs" Inherits="Services_UsernameAvailable" %>
protected void Page_Load(object sender, EventArgs e)
{
Response.Clear();
Response.ContentType = "application/json";
string NameToLookUp = Request.QueryString["username"];
if (NameToLookUp == null) {
NameToLookUp = "";
}
DbaseExecSpWithReturnValue Sproc = new DbaseExecSpWithReturnValue();
Sproc.SetSp("sp_CheckUsernameAvailable");
Sproc.AddParam(1);
Sproc.AddParam("Username",SqlDbType.Char,NameToLookUp,20);
int RetVal = Sproc.Execute();
Sproc.Close();
if (RetVal == 0)
{
Response.Write(@"'{""success"": false}'");
}
if (RetVal == 1)
{
Response.Write(@"'{""success"": true}'");
}
Response.End();
}
您在使用firebug时看到响应了吗?在使用firebug时看到响应了吗?