ASP.NET的AJAX调用Web Service方法和后台页面的方法

Default.aspx页面
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>

<!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 type="text/javascript">
        function Ajax() {
            var timer = new Date();
            var name = " 客户端数据";
            AjaxWebService.SayHello(name, ajaxResult, ajaxError, null);
        }
        function ajaxResult(result) {
            document.getElementById("labMessage").innerHTML = result
        }
        function ajaxError(result) {
            alert(result._message);
        }

        function Ajax2() {
            var timer = new Date();
            var name = " 客户端数据";
            PageMethods.SayHello(name, ajaxResult2, ajaxError2, null);
        }
        function ajaxResult2(result) {
            document.getElementById("labMessage2").innerHTML = result
        }
        function ajaxError2(result) {
            alert(result._message);
        }
    </script>

</head>
<body>
    <form id="form1" runat="server">
    <asp:ScriptManager ID="ScriptManager1" runat="server" EnablePageMethods="true">
        <Services>
            <asp:ServiceReference Path="~/AjaxWebService.asmx" />
        </Services>
    </asp:ScriptManager>
    <input type="button" value="测试" οnclick="Ajax();" />
    <span id="labMessage"></span>
    <br />
    <input type="button" value="测试" οnclick="Ajax2();" />
    <span id="labMessage2"></span>
    </form>
</body>
</html>

 

Default.aspx.cs页面

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

public partial class _Default : System.Web.UI.Page 
{
    protected void Page_Load(object sender, EventArgs e)
    {

    }

    // 注意,需要标识为WebMethod  ScriptManager的EnablePageMethods="true" 要让前台调用的方法,一定要是public和static的  
    [System.Web.Services.WebMethod]
    public static string SayHello(string str)
    {
        //throw new Exception();
        return "页面方法 "+DateTime.Now.ToString() + str;
    }

}


AjaxWebService.asmx页面数据

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Services;
using System.Web.Script.Services;

/// <summary>
///AjaxWebService 的摘要说明
/// </summary>
[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
//若要允许使用 ASP.NET AJAX 从脚本中调用此 Web 服务,请取消对下行的注释。 
[System.Web.Script.Services.ScriptService]
public class AjaxWebService : System.Web.Services.WebService {

    public AjaxWebService () {

        //如果使用设计的组件,请取消注释以下行 
        //InitializeComponent(); 
    }

    [WebMethod, ScriptMethod]
    public string SayHello(string str) {
        //throw new Exception();
        return DateTime.Now.ToString() + str; 
    }
    
}

 

SayHello是在WebService中对应的WebService方法,但在这里它多了3个参数。

SayHello(string str,onSuccess,onError,userContent);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值