zoukankan      html  css  js  c++  java
  • 利用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"]+" 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;    
        });    
    });

    本篇文章来源于 dotnet开源社区  原文链接:http://www.openaspx.com/article/201204/06/20120406090800.htm

  • 相关阅读:
    lucene学习-创建索引
    ExtJs学习-搭建开发环境
    Struts2上传文件(1)
    使用USBWriter做U盘启动盘后U盘在盘中不显示的解决办法(轉載)
    家里旧电脑装了centos7實踐思路
    win7/win10下装centos7双系统(转载)
    美区google play礼品卡,如何正确充值到美区google play余额,并能购买游戏道具
    excel 2016 打开UTF-8编码CSV文件乱码的问题UTF-8编码CSV文件乱码的问题
    python3 writerow CSV文件多一个空行
    python3 UnicodeEncodeError: 'gbk' codec can't encode character 'xa0' in position 4400: illegal multibyte sequence
  • 原文地址:https://www.cnblogs.com/aiwz/p/6153912.html
Copyright © 2011-2022 走看看