一步步学习AJAX(WebService)
首先需要了解:
我们是怎样利用WebService.asmx的?
WebService.asmx中需要注意的几个地方?
·首先,我们需要建立一个页面:Color.aspx
因为我们学习的是ajax,所以,我们当然少不了<scriptManager id="scriptManager1" runat="server"></scriptManager>控件,有且只有一个。
·在这个页面上建立和WEbService进行联系的控件:
<input type="button" value="Reverse Color" Onclick="ReColor()"/>
具体的代码如下:
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Color.aspx.cs" Inherits="Color" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title>无标题页</title>
    <script language="javascript" type="text/javascript">
        function ReColor()
        {
//注意:此处,我们还可以直接利用json方式来写,如下:
//var color={"red":50,"green":100,"blue":200};
            var color=new Object();
            color.red=50;
            color.green=100;
            color.blue=200;
            [命名空间名称.]ColorService.Reverse(color,ColorSuccessfull); //此处,来调用一个回调函数ColorSuccessfull
//其中,[如果有命名空间的话,我们此处写的就是命名空间名称],ColorService是类名,Reverse是方法名,Color是我们要传递的参数,ColorSuccessfull是正确放回的结果的方法。
        }
        function ColorSuccessfull(result)//result是返回的结果 
       {
//注意:此处,我们应用的是String.Format()方法进行了格式化;
            alert(String.format(
                "red:{0}\ngreen:{1}\nblue:{2}",
                result.red,
                result.green,
                result.blue
            ));
        }
    </script>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <asp:ScriptManager ID="ScriptManager1" runat="server">
        <Services>
            <asp:ServiceReference Path ="~/ColorService.asmx" InlineScript="true" />
        </Services>
        </asp:ScriptManager>
    <input type="button" value="Reverse Color" onclick="ReColor();" />
    </div>
    </form>
</body>
</html>
·接下来,我们就要开始写ColorWebService.asmx的方法了,如下:
using System;
using System.Collections;
using System.Linq;
using System.Web;
using System.Web.Services;
using System.Web.Services.Protocols;
using System.Xml.Linq;
using System.Web.Script.Services;
/// <summary>
///ColorService 的摘要说明
/// </summary>
[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
//若要允许使用 ASP.NET AJAX 从脚本中调用此 Web 服务,请取消对下行的注释。 
[ScriptService]
public class ColorService : System.Web.Services.WebService {
    [WebMethod]
    [GenerateScriptType(typeof(Color))]
    public Color Reverse(Color color)
    {
        return new Color(
                (byte)(255-color.red),
                (byte)(255- color.green),
                (byte)(255- color.blue));
    }
}
 
                    
                
 
                
            
         浙公网安备 33010602011771号
浙公网安备 33010602011771号