asp.net利用Ajax和Jquery在前台向后台传参数并返回值,通过aspx.cs中的静态方法+WebMethod进行处理

时间:2022-06-01 19:32:33

asp.net利用Ajax和Jquery在前台向后台传参数并返回值,通过aspx.cs中的静态方法WebMethod进行处理

后台代码:

using System.Web.Services; //引入命名空间


[WebMethod]
public static string SayHello()
{
    return "Hello Ajax!";
}

前台页面代码:

<form id="form1" runat="server">
<div>
<asp:Button ID="btn" runat="server" Text="验证用户" />
</div>
</form>

Javascript代码:

$(function() {     
    $("#btn").click(function() {     
        $.ajax({              
            type: "post", //要用post方式                 
            url: "Demo.aspx/SayHello",//方法所在页面和方法名
            contentType: "application/json; charset=utf-8",     
            dataType: "json",     
            success: function(data) {                    
                alert(data.d);//返回的数据用data.d获取内容
            },
            error: function(err) {     
                alert(err);     
            }     
        });
    });     
});

//标准的写法:
$.ajax({
     type: "post",
     dataType: "json",
     contentType: "application/json", //注意:WebMethod()必须加这项,否则客户端数据不会传到服务端
     data:{如上所述},//注意:data参数可以是string个int类型
     url: "List.aspx/DeleteNews",//模拟web服务,提交到方法
     // 可选的 async:false,阻塞的异步就是同步
     beforeSend:function(){
          // do something.
          // 一般是禁用按钮等防止用户重复提交
          $("#btnClick").attr({disabled:"disabled"});
          // 或者是显示loading图片
     },
     success: function (data) {
          alert("success: " + data.d);//注意这里:必须通过data.d才能获取到服务器返回的值
          // 服务端可以直接返回Model,也可以返回序列化之后的字符串,如果需要反序列化:string json = JSON.parse(data.d);
          // 有时候需要嵌套调用ajax请求,也是可以的
     },
     complete: function(){
          //do something.
          $("#btnClick").removeAttr("disabled");
          // 隐藏loading图片
     },
     error: function (data) {
          alert("error: " + data.d);
     }
});


菜鸟总结 多存疏漏 感谢指正