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

61 篇文章 1 订阅
46 篇文章 0 订阅

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

利用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 ;
     });
});

4、返回Hashtable方法的调用

后台<C#>:

?

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

前台<JQuery>:

?

$( 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:
 
view plaincopy to clipboardprint?
<? 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 >
<? 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 >

前台<JQuery>:

?

$( 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 ;  
     });  
});
分类: .Net, JS-jQuery
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值