我的前台代码是:
   <%@ Page language="c#" Codebehind="Default.aspx.cs" AutoEventWireup="false" Inherits="WebApplication1._Default" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
<HTML>
<HEAD>
 <title>Default</title>
   <meta name="GENERATOR" Content="Microsoft Visual Studio .NET 7.1">
   <meta name="CODE_LANGUAGE" Content="C#">
   <meta name="vs_defaultClientScript" content="JavaScript">
   <meta name="vs_targetSchema"content="http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
</HEAD>
<body MS_POSITIONING="GridLayout">
<form id="Form1" method="post" runat="server">
<input id="Button1" name="Button1" type="button" value="获得服务器时间" onclick="GetServerTime()" runat="server"> 
<input id="Text1" type="text" runat="server"> 
<input id="Text2" type="text" runat="server">
<input id="Button2" name="Button2" type="button" value="得到两个文本框的和" onclick="AddTwo(document.getElementById('Text1').value,document.getElementById('Text2').value)" runat="server">
</form>
</body>
</HTML>后台代码是:
   private void Page_Load(object sender, System.EventArgs e)
{
// 在此处放置用户代码以初始化页面
AjaxPro.Utility.RegisterTypeForAjax(typeof(_Default));
} [AjaxPro.AjaxMethod]
public DateTime GetServerTime()
{
return DateTime.Now;
} [AjaxPro.AjaxMethod]
public int AddTwo(int firstInt, int secondInt)
{
return firstInt + secondInt;
}
已经运用了AjaxPro.dll但是运行后,点击按钮就出现网页错误是什么原因啊??

解决方案 »

  1.   

    ajax 为命名空间,这里的代码是在前台页面上,Default2.cs是对应的后台代码;
    <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default2.aspx.cs" Inherits="ajax.Default2" %>
    <script type="text/jscript">
        function ff()
        {
        ajax.Default2.AddTwo(22,33,getAdd);    //AddTwo的代码是在Default2.aspx.cs文件里面实现的
        }
        function getAdd(rel)
        {
        var ff=document.getElementById("dd");
        ff.innerHTML=rel.value;
        var xmlDoc=new ActiveXObject("Microsoft.XMLDOM")
        xmlDoc.async="false"
        xmlDoc.loadXML(rel.value);
        nodes=xmlDoc.getElementsByTagName("cname");
        var j=document.all.Select1.options.length;
        for( var n=0;n<j;n++)
        {
           document.all.Select1.options.remove(j);
        }  
        j=0;
         for(var i = 0; i < nodes.length; i++) 
           {
             document.all.Select1.options[j] = new Option(nodes[i].firstChild.data,i);
             j=j+1;
           }
        }
        
        </script>下面的代码是在web.config配置文件里添加的,用于注册ajax
     <httpHandlers>
        <add verb="POST,GET" path="ajaxpro/*.ashx" type="AjaxPro.AjaxHandlerFactory, AjaxPro"/>
     </httpHandlers>下面的是后台代码,首先加命名空间ajax,接着在page_load事件里面注册在后台处理的类Default,
    用属性[AjaxPro.AjaxMethod]声明用于在前台调用的方法
    namespace ajax
    {
        public partial class Default2 : System.Web.UI.Page
        {
            protected void Page_Load(object sender, EventArgs e)
            { 
                AjaxPro.Utility.RegisterTypeForAjax(typeof(Default2));
            }
            [AjaxPro.AjaxMethod]
            public string    AddTwo(int firstInt, int secondInt)
            {
           
              return   GetCity("server='192.168.1.25';database='hydb';uid='sa';pwd='123'","1");
            }
            public string   GetCity(string conn, string pid)
            {
                using (SqlConnection con =new  SqlConnection(conn))
                {
                    SqlCommand cmd = new SqlCommand("GetCity", con);
                    cmd.Parameters.Add("@pid", SqlDbType.VarChar, 10);
                    cmd.Parameters["@pid"].Value = pid;
                    cmd.CommandType = CommandType.StoredProcedure;
                    SqlDataAdapter da = new SqlDataAdapter();
                    da.SelectCommand = cmd;
                    DataSet ds = new DataSet();
                    da.Fill(ds, "city");
                    string ss= ds.GetXml();
                    return ss;
                    //dd.DataSource = ds.Tables["city"].DefaultView;
                    //dd.DataBind();
                   
                }
            }
    }
    }
    当然首先要引用AjaxPro.dll文件
      

  2.   

    前台代码是:
    <%@ Page language="c#" Codebehind="Default.aspx.cs" AutoEventWireup="false" Inherits="WebApplication1._Default" %>
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
    <HTML>
    <HEAD>
     <title>Default</title>
       <meta name="GENERATOR" Content="Microsoft Visual Studio .NET 7.1">
       <meta name="CODE_LANGUAGE" Content="C#">
       <meta name="vs_defaultClientScript" content="JavaScript">
       <meta name="vs_targetSchema"content="http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
       <script language="javascript" type="text/javascript">
          function GetServerTime()
          {
             Default.GetServerTime(GetServerTime_callback);
          }
          function GetServerTime_callback(res)
          {
             document.getElementById("txtTime").value = res.value;
          }
          function AddTwo()
          {
             var firstInt = document.getElementById("Text1").value; 
             var secondInt = document.getElementById("Text1").value; 
             Default.AddTwo(firstInt,secondInt,AddTwo_callback);
          }
          function AddTwo_callback(res)
          {
             document.getElementById("txtResult").value = res.value;
          }
       </script>
    </HEAD>
    <body MS_POSITIONING="GridLayout">
    <form id="Form1" method="post" runat="server">
    <input id="Button1" name="Button1" type="button" value="获得服务器时间" onclick="GetServerTime()" runat="server"> 
                               <input id="txtTime" type="text" runat="server"> 
    <input id="Text1" type="text" runat="server"> 
    <input id="Text2" type="text" runat="server">
                               <input id="txtResult" type="text" runat="server"> 
    <input id="Button2" name="Button2" type="button" value="得到两个文本框的和" onclick="AddTwo()" runat="server">
    </form>
    </body>
    </HTML>后台代码是:
       private void Page_Load(object sender, System.EventArgs e)
    {
    // 在此处放置用户代码以初始化页面
    AjaxPro.Utility.RegisterTypeForAjax(typeof(_Default));
    } [AjaxPro.AjaxMethod]
    public DateTime GetServerTime()
    {
    return DateTime.Now;
    } [AjaxPro.AjaxMethod]
    public int AddTwo(int firstInt, int secondInt)
    {
    return firstInt + secondInt;
    }