一步步学习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));
    }

}

posted @ 2009-05-06 21:18  Devil_Zhang  阅读(189)  评论(0编辑  收藏  举报