当前位置:编程学习 > C#/ASP.NET >>

ajax验证用户名是否存在出错~

ajax验证用户名是否存在出错~
不知道哪里错了~~~

报空异常
if (Request.QueryString["Event"].ToString()=="CheckName")
{
if (cm.CheckName(Request.QueryString["Name"].ToString()))
{
Response.Write("true");
Response.End();
}
else
{
Response.Write("false");
Response.End();
}
}

if (Request.QueryString["Event"].ToString()=="CheckName")
这句出现异常
未将对象的引用设置到对象的实例

我的js文件
var xmlHttp;
function CheckName(txtName)
{
createXMLHTTP();
var url = "DisposeEvent.aspx?Name="+txtName+"&Event=CheckName";
xmlHttp.open("POST",url,true);
xmlHttp.onreadystatechange = checkUserName;
xmlHttp.send(null);
}
function creatXMLHTTP()
{
if(window.XMLHttpRequest)
{
xmllHttp = new XMLHttpRequest();//mozilla浏览器
}
else if(window.ActiveXObject)
{
try
{
xmHttp = new ActiveXObject("Msxml2.XMLHTTP");//IE老版本
}
catch(e){}
try
{
xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");//IE新版本
}
catch(e){}
if(!xmlHttp)
{
window.alert("不能创建XMLHttpRequest对象实例!");
return false;
}
}

}
function checkUserName()
{
if(xmlHttp.readyState==4)
{
if(xmlHttp.status==200)
{
if(xmlHttp.responseText=="true")
{
document.getElementById("imgCheck").src="img/true.gif";
document.getElementById("imgCheck").disabled = "";
document.getElementById("btnReg").disabled = false;
}
else
{
document.getElementById("imgCheck").src="img/false.gif";
document.getElementById("imgCheck").disabled = "";
document.getElementById("btnReg").disabled = true;
}
}
}
} --------------------编程问答-------------------- 自己顶下,急~~~ --------------------编程问答-------------------- 改成Request["Event"]试试 --------------------编程问答-------------------- 在ajax中post 的

在页面中
  if (Request.Params["Event"] != null)
        {
          s_Parameter_Event= Request.Params["Event"].ToString();
        }

加个保护 --------------------编程问答-------------------- 还是不行~~ --------------------编程问答-------------------- Request.QueryString["Event"]
先判断它是否问空.如果为空ToString()出错.
或者Convert.ToString(Request.QueryString["Event"])判断
3楼的也可以. --------------------编程问答-------------------- string s_Parameter_Event="";


        if (Request.Params["Event"]!=null)
        {
            s_Parameter_Event = Request.Params["Event"].ToString();
            
        }
        if (s_Parameter_Event == "CheckName")
        {
            if (cm.CheckName(Request["Name"].ToString()))
            {
                Response.Write("true");
                Response.End();
            }
            else
            {
                Response.Write("false");
                Response.End();
            }
        }

这样写???还是不行嘛? --------------------编程问答-------------------- var objEvent = 'CheckName';

var url = "DisposeEvent.aspx?Name="+txtName+"&Event="+objEvent;  --------------------编程问答-------------------- 现在不会出错了
但好像取不到页面上的值`~~ --------------------编程问答-------------------- 用3层写的,所有用到的代码如下`~~实在不知道错在哪里~~~
SqlHelper类
public static class SqlHelper
    {
       
        private static SqlConnection connection;
        public static SqlConnection Connection
        {          
            get
            {
                string connectionString = ConfigurationManager.ConnectionStrings["SqlDB"].ConnectionString;
                if (connection == null)
                {
                    connection = new SqlConnection(connectionString);
                    connection.Open();
                   
                }
                else if (connection.State == System.Data.ConnectionState.Closed)
                {
                    connection.Open();
                    

                }
                else if (connection.State == System.Data.ConnectionState.Broken)
                {
                    connection.Close();
                    connection.Open();
                    
                }
                return connection;
            }
        }
 public static SqlDataReader GetReader(string safeSql)
        {
            SqlCommand cmd = new SqlCommand(safeSql, Connection);
            SqlDataReader reader = cmd.ExecuteReader();
            return reader;
        }

  }

DAL层
public class CustomerService
    {
        public SqlDataReader CheckName(string cname)
        {

            string sqlStr = "select * from customer where CNAME='"+cname+"'";

            return SqlHelper.GetReader(sqlStr);
        }
    }

BLL层

public class CustomerManage
    {
        private CustomerService cs = new CustomerService();

        public bool CheckName(string cname)
        {
            if (cs.CheckName(cname).Read())
            {
                return true;
            }
            else
            {
                return false;
            }
        }
    }

js文件
var xmlHttp;
var objEvent = CheckName;
function CheckName(txtName)
{
    createXMLHTTP();
    var url = "DisposeEvent.aspx?Name="+txtName+"&Event="+objEvent+"";
    xmlHttp.open("POST",url,true);
    xmlHttp.onreadystatechange = checkUserName;
    xmlHttp.send(null);
}
function createXMLHTTP()
{
    if(window.XMLHttpRequest)
    {
        xmlHttp=new XMLHttpRequest();//mozilla浏览器
    }
    else if(window.ActiveXObject)
    {
        try
        {
            xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");//IE老版本
        }
        catch(e)
        {}
        try
        {
            xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");//IE新版本
        }
        catch(e)
        {}
        if(!xmlHttp)
        {
            window.alert("不能创建XMLHttpRequest对象实例!");
            return false;
        }
    }
}
function checkUserName()
{
    if(xmlHttp.readyState==4)
    {
        if(xmlHttp.status==200)
        {
            if(xmlHttp.responseText=="true")
            {
                document.getElementById("imgCheck").src="img/true.gif";
                //window.alert(xmlHttp.responseText);
                //document.getElementById("imgCheck").disabled = "";
                document.getElementById("btnReg").disabled = false;
            }
            else
            {
                document.getElementById("imgCheck").src="img/false.gif";
                //window.alert(xmlHttp.responseText);
                //document.getElementById("imgCheck").disabled = "";
                document.getElementById("btnReg").disabled = true;
            }
        }
    }
}


处理方法的页面
protected void Page_Load(object sender, EventArgs e)
    {
        CustomerManage cm = new CustomerManage();

        if (Request.QueryString["Event"].ToString()=="CheckName")
        
            if (cm.CheckName(Request.QueryString["Name"].ToString()))
            {
                Response.Write(Request.QueryString["Name"].ToString());
                Response.End();
            }
            else
            {
                Response.Write(Request.QueryString["Name"].ToString());
                Response.End();
            }
        }


前台的
<input id="txtName" type="text" onkeyup="CheckName(document.getElementById('txtName').value);"/> --------------------编程问答-------------------- 在线等,请大家帮忙,谢谢`~~ --------------------编程问答-------------------- 我给你一个验证的要不要 --------------------编程问答-------------------- 你也没说运行到哪停
回没回调返回的是什么? --------------------编程问答-------------------- 你看一下你接收到是不是乱码
还有你上面的提交方式用GET试试 --------------------编程问答-------------------- 能运行,也没出错
if(xmlHttp.responseText=="true")
            {
                document.getElementById("imgCheck").src="img/true.gif";
                //window.alert(xmlHttp.responseText);
                //document.getElementById("imgCheck").disabled = "";
                document.getElementById("btnReg").disabled = false;
            }
            else
            {
                document.getElementById("imgCheck").src="img/false.gif";
                //window.alert(xmlHttp.responseText);
                //document.getElementById("imgCheck").disabled = "";
                document.getElementById("btnReg").disabled = true;
            } 
这里每次都不等于true不管输的对还是错
--------------------编程问答-------------------- 你打印一下看看xmlHttp.responseText是什么 --------------------编程问答-------------------- 下班了要是没解决别天再说吧 --------------------编程问答--------------------

这个是打印的图片`~ --------------------编程问答-------------------- 图片路径改为绝对路径
../image/true.gif --------------------编程问答-------------------- 图片路径对的 --------------------编程问答-------------------- 我知道你是什么问题了 --------------------编程问答-------------------- if (cm.CheckName(Request.QueryString["Name"].ToString()))
            {
                Response.Clear();

                Response.Write(Request.QueryString["Name"].ToString());
                Response.End();
            }
            else
            {
                Response.Clear();
                Response.Write(Request.QueryString["Name"].ToString());
                Response.End();
            } 
这样修改下试试
补充:.NET技术 ,  ASP.NET
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,