JQuery直接调用asp.net后台WebMethod方法 JQuery直接调用asp.net后台WebMethod方法 AJAX向后台WebMethod static方法传递数组并接收 Jquery ajax传递复杂参数给WebService
参考:
AJAX向后台WebMethod static方法传递数组并接收
利用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、带数组参数的方法调用
前台
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
< script src = "http://code.jquery.com/jquery-1.10.1.js" ></ script >
< script >
$(document).ready(function () {
var myCars = new Array();
myCars[0] = "Saab";
myCars[1] = "Volvo";
myCars[2] = "BMW";
$.ajax({
type: "POST",
url: "<%=Request.Url.AbsolutePath%>/Concat",
data: JSON.stringify({ arr: myCars }),
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (response) {
alert(response.d);
},
failure: function () {
alert("fail");
}
});
});
</ script >
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
[System.Web.Script.Services.ScriptService] public partial class WebForm1 : System.Web.UI.Page
{ protected void Page_Load( object sender, EventArgs e)
{
}
[WebMethod]
public static string Concat(List< string > arr)
{
string result = "" ;
for ( int i = 0; i < arr.Count; i++)
{
result += arr[i];
}
return result;
}
} |
4、返回数组方法的调用
后台<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;
- });
- });
Jquery ajax传递复杂参数给WebService
Entity:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
|
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Runtime.Serialization;
namespace Entity
{ [DataContract]
public class User
{
[DataMember]
public string Name
{
get ;
set ;
}
[DataMember]
public int Age
{
get ;
set ;
}
}
} |
WebService:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Services;
using Entity;
namespace JQuery.Handler
{ [WebService(Namespace = "http://tempuri.org/" )]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[System.ComponentModel.ToolboxItem( false )]
[System.Web.Script.Services.ScriptService]
public class UserService1 : System.Web.Services.WebService
{
[WebMethod]
public string ComplexType(User hero,List<User> users)
{
return hero.Name + " has " + users.Count + " people!" ;
}
}
} |
Html:
<html xmlns= "http://www.w3.org/1999/xhtml" >
<head> <title>Ajax</title>
<script src= "../Scripts/jquery-1.6.min.js" type= "text/javascript" ></script>
<script type= "text/javascript" >
$(function () {
$( "#btnWeb" ).click(function () {
$.ajax(
{
type: "post" ,
url: "../Handler/UserService.asmx/ComplexType" ,
dataType: "json" ,
contentType: "application/json" ,
data: '{ "hero" : { "Name" : "zhoulq" , "Age" :27}, "users" :[{ "Name" : "zhangs" , "Age" :22},{ "Name" : "wangw" , "Age" :26},{ "Name" : "liuj" , "Age" :25},
|
{ "Name" : "luos" , "Age" :24}]}',
success: function (data) { $( "#web" ).text(data.d); }
});
});
});
</script>
</head> <body> <input id= "btnWeb" type= "button" value= "请求WebService" /><label id= "web" ></label>
</body> </html> |