使用AJAX直接调用后台方法

本文介绍了如何在前端使用AJAX技术直接调用后台方法,实现前后端的数据通信。通过示例展示了前台发送请求和后台接收处理的代码实现。

前台代码:

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

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title>Untitled Page</title>
    <script type="text/javascript">
        function btnClick() {
            //调用页面后台方法,前面跟方法所需的参数,接着是方法回调成功时要执行的js函数,最后一个是方法回调失败时要执行的js函数 
            var name = document.getElementById("txtName").value;
           
            PageMethods.UserName(name, funRead, funErr);
        }
        //result 就是后台方法返回的数据 
        function funRead(result) {
            alert(result);
        }
        //err 就是后台方法返回的错误信息 
        function funErr(err) {
            alert("Error:" + err._message);
        }
    </script>
</head>
<body>
    <form id="form1" runat="server">
        <div>
            <%--用户名输入文本--%>
            <input type="text" name="txtName" id="txtName" />
            <%--第一个测试,通过asp控件进行用户信息获取--%>
            <asp:Button ID="txtNamebtn" Text="点击" runat="server" OnClick="txtNamebtn_Click" />
            <%--       下面要加上EnablePageMethods="true"属性,才能使用后台方法;
            如果不加,运行时会报"PageMethods"没有定义--%>
            <asp:ScriptManager ID="sManager" runat="server" EnablePageMethods="true"></asp:ScriptManager>
            <%--  第二个测试,通过ajax获取用户信息--%>
            <input type="button" onclick="btnClick();" value="test" />
        </div>
    </form>
</body>
</html>


后台代码:


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

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

    }
    /// <summary>
    /// 第一个测试方式,通过Request.Form.Get("控件名")来获取用户信息
    /// </summary>
    /// <param name="sender"></param>
    /// <param name="e"></param>
    protected void txtNamebtn_Click(object sender, EventArgs e)
    {
        Response.Write("<script>alert('" + Request.Form.Get("txtName").ToString() + "');</script>");
    }
    /// <summary>
    /// 第二测试方式
    /// </summary>

    //首先需要添加WebMethod表示
    [System.Web.Services.WebMethod]
    //其次,添加前台调用方法,需公共静态方法 public static
    public static string UserName(string name)
    {
        return "用户名:" +name;
    }
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值