zl程序教程

您现在的位置是:首页 >  前端

当前栏目

jquery.Ajax()方法调用Asp.Net后台的方法解析

2023-06-13 09:15:17 时间

利用JQuery的$.ajax()可以很方便的调用asp.net的后台方法。
先来个简单的实例热热身吧。

1、无参数的方法调用
asp.netcode:

复制代码代码如下:

usingSystem.Web.Script.Services;  

[WebMethod]  
publicstaticstringSayHello()  
{  
    return"HelloAjax!";  

usingSystem.Web.Script.Services;

[WebMethod]
publicstaticstringSayHello()
{
    return"HelloAjax!";
}


注意:1.方法一定要静态方法,而且要有[WebMethod]的声明

JQuerycode:

复制代码代码如下:

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

       //禁用按钮的提交  
       returnfalse;  
   });  
}); 
///<referencepath="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);
           }
       });

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


结果:

2、带参数的方法调用
asp.netcode:

复制代码代码如下:
usingSystem.Web.Script.Services;  

[WebMethod]  
publicstaticstringGetStr(stringstr,stringstr2)  
{  
   returnstr+str2;  

usingSystem.Web.Script.Services;

[WebMethod]
publicstaticstringGetStr(stringstr,stringstr2)
{
   returnstr+str2;
}


JQuerycode:
复制代码代码如下:
///<referencepath="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);  
           }  
       });  

       //禁用按钮的提交  
       returnfalse;  
   });  
}); 
///<referencepath="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);
           }
       });

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


运行结果:

下面进入高级应用罗

3、返回数组方法的调用
asp.netcode:

复制代码代码如下:
usingSystem.Web.Script.Services;  

[WebMethod]  
publicstaticList<string>GetArray()  
{  
   List<string>li=newList<string>();  

   for(inti=0;i<10;i++)  
       li.Add(i+"");  

   returnli;  

usingSystem.Web.Script.Services;

[WebMethod]
publicstaticList<string>GetArray()
{
   List<string>li=newList<string>();

   for(inti=0;i<10;i++)
       li.Add(i+"");

   returnli;
}


JQuerycode:
复制代码代码如下:
///<referencepath="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);  
           }  
       });  

       //禁用按钮的提交  
       returnfalse;  
   });  
}); 
///<referencepath="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);
           }
       });

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


运行结果:

4、返回Hashtable方法的调用
asp.netcode:

复制代码代码如下:
usingSystem.Web.Script.Services;  
usingSystem.Collections;  

[WebMethod]  
publicstaticHashtableGetHash(stringkey,stringvalue)  
{  
   Hashtablehs=newHashtable();  

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

   returnhs;  

usingSystem.Web.Script.Services;
usingSystem.Collections;

[WebMethod]
publicstaticHashtableGetHash(stringkey,stringvalue)
{
   Hashtablehs=newHashtable();

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

   returnhs;
}


JQuerycode:
复制代码代码如下:
///<referencepath="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"]+"\nkey:www==>"+data.d["www"]);  
           },  
           error:function(err){  
               alert(err+"err");  
           }  
       });  

       //禁用按钮的提交  
       returnfalse;  
   });  
}); 
///<referencepath="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"]+"\nkey:www==>"+data.d["www"]);
           },
           error:function(err){
               alert(err+"err");
           }
       });

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


运行结果:

5、操作xml
XMLtest.xml:

复制代码代码如下:
<?xmlversion="1.0"encoding="utf-8"?> 
<data> 
 <item> 
   <id>1</id> 
   <name>qwe</name> 
 </item> 
 <item> 
   <id>2</id> 
   <name>asd</name> 
 </item> 
</data> 
<?xmlversion="1.0"encoding="utf-8"?>
<data>
 <item>
   <id>1</id>
   <name>qwe</name>
 </item>
 <item>
   <id>2</id>
   <name>asd</name>
 </item>
</data>

JQuerycode:
复制代码代码如下:
$(function(){  
   $("#btnOK").click(function(){  
       $.ajax({  
           url:"XMLtest.xml",  
           dataType:"xml",//返回的类型为XML,和前面的Json,不一样了  
           success:function(xml){  
               //清空list  
               $("#list").html("");  
               //查找xml元素  KVM网上购物毛刷网站建设北京快递公司超声波焊接机
               $(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);  
           }  
       });  

       //禁用按钮的提交  
       returnfalse;  
   });  
}); 
$(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);
           }
       });

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