jQuery直接调用asp.net后台WebMethod方法

利用JQuery的$.ajax()可以很方便的调用asp.net的后台方法。

[WebMethod] 命名空间

1、无参数的方法调用, 注意:1.方法一定要静态方法,而且要有[WebMethod]的声明

后台<C#>:

using System.Web.Script.Services;

[WebMethod]

public static string SayHello()

{

  return "Hello Ajax!";

}

前台<JQuery>:

$(function() {

  $("#btnOK").click(function() {

  $.ajax({

    //要用post方式

    type: "Post",

    //方法所在页面和方法名

    url: "data.aspx/SayHello",

    contentType: "application/json; charset=utf-8",

    dataType: "json",

    success: function(data) {

      //返回的数据用data.d获取内容

      alert(data.d);

    },

    error: function(err) {

      alert(err);

    }

  });

  //禁用按钮的提交

  return false;

  });

});

2、带参数的方法调用

后台<C#>:

using System.Web.Script.Services;

[WebMethod]

public static string GetStr(string str, string str2)

{

  return str + str2;

}

前台<JQuery>:

$(function() {

  $("#btnOK").click(function() {

    $.ajax({

      type: "Post",

      url: "data.aspx/GetStr",

      //方法传参的写法一定要对,str为形参的名字,str2为第二个形参的名字

      data: "{'str':'我是','str2':'XXX'}",

      contentType: "application/json; charset=utf-8",

      dataType: "json",

      success: function(data) {

      //返回的数据用data.d获取内容

      alert(data.d);

      },

    error: function(err) {

      alert(err);

    }

  });

  //禁用按钮的提交

  return false;

  });

});

3、返回数组方法的调用

后台<C#>:

using System.Web.Script.Services;

[WebMethod]

public static List<string> GetArray()

{

  List<string> li = new List<string>();

  for (int i = 0; i < 10; i++){

    li.Add(i + "");

  }

  return li;

}

前台<JQuery>:

$(function() {

  $("#btnOK").click(function() {

    $.ajax({

      type: "Post",

      url: "data.aspx/GetArray",

      contentType: "application/json; charset=utf-8",

      dataType: "json",

      success: function(data) {

      //插入前先清空ul

      $("#list").html("");

      //递归获取数据

      $(data.d).each(function() {

      //插入结果到li里面

        $("#list").append("<li>" + this + "</li>");

      });

        alert(data.d);

    },

    error: function(err) {

        alert(err);

      }

    });

    //禁用按钮的提交

    return false;

  });

});

/// <reference path="jquery-1.4.2-vsdoc.js"/>

$(function() {

  $("#btnOK").click(function() {

    $.ajax({

      type: "Post",

      url: "data.aspx/GetArray",

      contentType: "application/json; charset=utf-8",

      dataType: "json",

      success: function(data) {

      //插入前先清空ul

      $("#list").html("");

      //递归获取数据

      $(data.d).each(function() {

      //插入结果到li里面

      $("#list").append("<li>" + this + "</li>");

    });

      alert(data.d);

    },

    error: function(err) {

      alert(err);

    }

  });

    //禁用按钮的提交

    return false;

  });

});