您的位置:首页 > Web前端 > JQuery

利用JQuery调用asp.net后台方法

2013-07-06 01:38 671 查看
利用JQuery的$.ajax()可以很方便的调用asp.net的后台方法。

先来个简单的实例热热身吧。

1、无参数的方法调用

asp.net code:

[c-sharp]
view plaincopyprint?

using System.Web.Script.Services; 

 
[WebMethod] 
public static
string SayHello() 

     return "Hello Ajax!"; 



[javascript]
view plaincopyprint?

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

$(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; 

    }); 
}); 

/// <reference path="jquery-1.4.2-vsdoc.js"/>
$(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、带参数的方法调用

asp.net code:

[c-sharp]
view plaincopyprint?

using System.Web.Script.Services; 

 
[WebMethod] 
public static
string GetStr(string str,
string str2) 

    return str + str2; 


[javascript]
view plaincopyprint?

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

$(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; 

    }); 
}); 

/// <reference path="jquery-1.4.2-vsdoc.js"/>
$(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、返回数组方法的调用

asp.net code:

[c-sharp]
view plaincopyprint?

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; 


[javascript]
view plaincopyprint?

/// <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; 

    }); 
}); 

/// <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;
});
});


运行结果:



4、返回Hashtable方法的调用

asp.net code:

[c-sharp]
view plaincopyprint?

using System.Web.Script.Services; 

using System.Collections; 
 
[WebMethod] 
public static Hashtable GetHash(string key,string value) 


    Hashtable hs = new Hashtable(); 

 
    hs.Add("www",
"yahooooooo"); 
    hs.Add(key, value); 
     
    return hs; 


[javascript]
view plaincopyprint?

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

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

        $.ajax({ 
            type: "Post", 

            url: "data.aspx/GetHash", 

            //记得加双引号  T_T 

            data: "{ 'key': 'haha', 'value': '哈哈!' }", 

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

            dataType: "json", 

            success: function(data) { 

                alert("key: haha ==> "+data.d["haha"]+"/n key: www ==> "+data.d["www"]); 

            }, 
            error: function(err) { 

                alert(err + "err"); 

            } 
        }); 
 
        //禁用按钮的提交 

        return false; 

    }); 
}); 

/// <reference path="jquery-1.4.2-vsdoc.js"/>
$(function() {
$("#btnOK").click(function() {
$.ajax({
type: "Post",
url: "data.aspx/GetHash",
//记得加双引号  T_T
data: "{ 'key': 'haha', 'value': '哈哈!' }",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function(data) {
alert("key: haha ==> "+data.d["haha"]+"/n key: www ==> "+data.d["www"]);
},
error: function(err) {
alert(err + "err");
}
});

//禁用按钮的提交
return false;
});
});


运行结果:



5、操作xml

XMLtest.xml:

[xhtml]
view plaincopyprint?

<?xml
version="1.0"
encoding="utf-8"
?> 
<data> 

  <item> 

    <id>1</id> 

    <name>qwe</name> 

  </item> 

  <item> 

    <id>2</id> 

    <name>asd</name> 

  </item> 

</data> 

[javascript]
view plaincopyprint?

$(function() { 

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

        $.ajax({ 
            url: "XMLtest.xml", 

            dataType: 'xml',
//返回的类型为XML ,和前面的Json,不一样了 
            success: function(xml) { 

                //清空list 

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

                //查找xml元素 

                $(xml).find("data>item").each(function() { 

                    $("#list").append("<li>id:" + $(this).find("id").text() +"</li>"); 

                    $("#list").append("<li>Name:"+ $(this).find("name").text() +
"</li>"); 
                }) 
            }, 
            error: function(result, status) {
//如果没有上面的捕获出错会执行这里的回调函数 
                alert(status); 
            } 
        }); 
 
        //禁用按钮的提交 
        return false; 

    }); 
}); 

$(function() {
$("#btnOK").click(function() {
$.ajax({
url: "XMLtest.xml",
dataType: 'xml', //返回的类型为XML ,和前面的Json,不一样了
success: function(xml) {
//清空list
$("#list").html("");
//查找xml元素
$(xml).find("data>item").each(function() {
$("#list").append("<li>id:" + $(this).find("id").text() +"</li>");
$("#list").append("<li>Name:"+ $(this).find("name").text() + "</li>");
})
},
error: function(result, status) { //如果没有上面的捕获出错会执行这里的回调函数
alert(status);
}
});

//禁用按钮的提交
return false;
});
});


运行结果:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: