我在ascx中使用ajax总是不成功,老是报语法错误的错,代码
 protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
               label2.Text = "今天的日期为:" + System.DateTime.Now.ToLongDateString();
               Ajax.Utility.RegisterTypeForAjax(typeof(UserFile_left),this.Page);
        }
        txtMName.Attributes.Add("OnBlur", "return GetName()");
    }
    [Ajax.AjaxMethod]
    public string GetUserName(string JobNo)
    {
        SqlDataReader dr = null;
        sqlhelper.RunSQL("select * from T_User where JobNo='" + JobNo + "'", out dr);
        if (dr.Read())
        {
            string Name = dr["UserName"].ToString();
            dr.Close();
            dr.Dispose();
            return "您好:" + Name;
        }
        else
        {
            dr.Close();
            dr.Dispose();
            return "对不起,此用户不存在";
        }
    }
js:
<script language="javascript" type="text/javascript" >
    function GetName()
    {
        var JobNo=document.getElementById("left_txtMName").value;
        var div1=document.getElementById("div1");
        div1.innerHTML="<font style='font-size: 9pt;'>"+UserFile_left.GetUserName(JobNo).value+"</font>";
    }
    </script>
他就总是说UserFile_left找不到的错

解决方案 »

  1.   

    1、查看html代码,看看有没有产生脚本引用(紧跟form标签的地方),如果没有,查找原因
    2、如果存在ajax脚本引用标签,看看路径是否符合
      

  2.   

    Ajax.Utility.HandlerPath 是可写的
    但比较麻烦,因为它是个静态属性
    所以你最好在应用程序初始化时将它设一个固定的绝对路径还有路径上它里面的逻辑处理不是很好
    自己调试一下
    更具体的我没深入研究过
      

  3.   

    我发现我只要一写Ajax.Utility.RegisterTypeForAjax(typeof(UserFile_left),this.Page);
    这据它就报语法错误的错,是什么原因啊