zoukankan      html  css  js  c++  java
  • AJAX 调用WebService 、WebApi 增删改查(笔记)

     经过大半天努力,终于完成增删改查了!心情有点小激动!!对于初学者的我来说,一路上都是迷茫,坑!!虽说网上有资料,可动手起来却不易(初学者的我)。(苦逼啊!)

    WebService 页面:

    /// <summary>
        /// TsetWeb 的摘要说明
        /// </summary>
        [WebService(Namespace = "http://tempuri.org/")]
        [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
        [System.ComponentModel.ToolboxItem(false)]
        // 若要允许使用 ASP.NET AJAX 从脚本中调用此 Web 服务,请取消注释以下行。 
        [System.Web.Script.Services.ScriptService]
        public class TsetWeb : System.Web.Services.WebService
        {
            TestBll bll = new TestBll();
    
            [WebMethod(Description = "获取所有对象信息")]
            public string AllUserJson()
            {
                return ToJson(bll.GetAllUser());
            }
    
            [WebMethod(Description = "添加一个对象信息")]
            public string SetUserJson(string name ,string phone)
            {
                return ToJson(bll.SetAddUser(name,phone));
            }
            [WebMethod(Description = "删除一个对象信息")]
            public string DelUserJson(int id)
            {
                return ToJson(bll.DelUser(id));
            }
            [WebMethod(Description = "更改一个对象信息")]
            public string Update(int id, string name, string phone)
            {
                Test user = new Test();
                user.id = id;
                user.name = name;
                user.phone = phone;
                return ToJson(bll.Update(user));
            }
    
            //对数据序列化,返回JSON格式 
            public string ToJson(object obj)
            {
                JavaScriptSerializer serializer = new JavaScriptSerializer();
                return serializer.Serialize(obj);
            }
        }
    

      AJAX调用WebService 页面:

    <body>
        <form id="form1" runat="server">
        <div>
            <table id="tab">
                <tr>
                    <td>编号</td>
                    <td>名字</td>
                    <td>电话</td>
                    <th>操作</th>
                </tr>
            </table>
        </div>
            <input type="button" name="add" id="add" value="添加" />
        </form>
        <script src="Scripts/jquery-1.7.1.min.js"></script>
        <script>
            $(function() {
                $.ajax({
                    url: "/TsetWeb.asmx/AllUserJson",
                    contentType: 'application/json',
                    dataType: "json",
                    type: "post",
                    success: function(data) {
                        var a = eval("(" + data.d + ")"); //后台返回是字符串,所以转换为json对象
                        $.each(a, function(index, item) {
                            var tr = $("<tr/>");
                            $("<td/>").html(item["id"]).appendTo(tr);
                            $("<td/>").html(item["name"]).appendTo(tr);
                            $("<td/>").html(item["phone"]).appendTo(tr);
                            $("<button id ='d' onclick='del(" + item["id"] + ")'>").html("删除").appendTo(tr);
                            $("<button id ='u' onclick='updata(" + item["id"] + ")'>").html("更新").appendTo(tr);
                            tr.appendTo("#tab");
                        });
                    },
                    error: function(XMLHttpRequest, textStatus, errorThrown) {
                        alert(XMLHttpRequest + "," + textStatus + "," + errorThrown);
                    }
                });
            });
            $("#add").click(function() {
                $.ajax({
                    url: "/TsetWeb.asmx/SetUserJson",
                    data: "{name:'李六',phone:'13727713819'}",
                    contentType: 'application/json',
                    dataType: "json",
                    type: "post",
                    success: function (data) {
                        var a = eval("(" + data.d + ")"); //后台返回是字符串,所以转换为json对象
                        alert(a);//返回1表示成功
                    },
                    error: function (XMLHttpRequest, textStatus, errorThrown) {
                        alert(XMLHttpRequest + "," + textStatus + "," + errorThrown);
                    }
                });
            });
            function del(id) {
                $.ajax({
                    url: "/TsetWeb.asmx/DelUserJson",
                    type: "Post",
                    data: { "id": id },
                    dataType: "json",
                    success: function (data) {
                        var a = eval("(" + data.d + ")"); //后台返回是字符串,所以转换为json对象
                        alert(a);//返回1表示成功
                    },
                    error: function (XMLHttpRequest, textStatus, errorThrown) {
                        alert(XMLHttpRequest + "," + textStatus + "," + errorThrown);
                    }
                });
            }
    
            function updata(id) {
                $.ajax({
                    url: "/TsetWeb.asmx/Update",
                    type: "Post",
                    data: { "id": id, "name": '九九', "phone": '15927713819' },
                    dataType: "json",
                    success: function (data) {
                        var a = eval("(" + data.d + ")"); //后台返回是字符串,所以转换为json对象
                        alert(a);//返回1表示成功
                    },
                    error: function (XMLHttpRequest, textStatus, errorThrown) {
                        alert(XMLHttpRequest + "," + textStatus + "," + errorThrown);
                    }
                });
            }
        </script>
    </body>
    

      AJAX调用WebService结果:

    WebApi页面:

    public class ValuesController : ApiController
        {
            TestBll bll = new TestBll();
    
            // GET api/values/GetAll()
            [HttpGet]
            public List<Test> GetAll()
            {
                return bll.GetAllUser();
            }
            [HttpPost]
            public int PostNew([FromBody]Test user)
            {
                return bll.SetAddUser(user.name, user.phone);
            }
            [HttpPost]
            public int PostNew(string name ,string phone)
            {
                return bll.SetAddUser(name, phone);
            }
    
            [HttpDelete]
            public int Delete([FromBody]Test user)
            {
                return bll.DelUser(user.id);
            }
    
            [HttpPut]
            public int Put([FromBody] Test user)
            {
                return bll.Update(user);
            }
        }
    

      AJAX调用WebApi页面:

    <div>
        <table id="tab">
            <tr>
                <th>编号</th>
                <th>名字</th>
                <th>电话</th>
                <th>操作</th>
            </tr>
        </table>
        <input type="button" name="add" id="add" value="添加" />
    </div>
    <script src="~/Scripts/jquery-1.7.1.min.js"></script>
     <script>
         $(function() {
             $.ajax({
                 url: "api/Values/GetAll",
                 type: "GET",
                 dataType: "json",
                 success: function(data) {
                     $.each(data, function(index, item) {
                         var tr = $("<tr/>");
                         $("<td/>").html(item["id"]).appendTo(tr);
                         $("<td/>").html(item["name"]).appendTo(tr);
                         $("<td/>").html(item["phone"]).appendTo(tr);
                         $("<button id ='d' onclick='del(" + item["id"] + ")'>").html("删除").appendTo(tr);
                         $("<button id ='u' onclick='updata(" + item["id"] + ")'>").html("更新").appendTo(tr);
                         tr.appendTo("#tab");
                     });
                 },
                 error: function(XMLHttpRequest, textStatus, errorThrown) {
                     alert(XMLHttpRequest + "," + textStatus + "," + errorThrown);
                 }
             });
             
         });
         $("#add").click(function () {
             $.ajax({
                 url: "api/Values/Put",
                 type: "Put",
                 data: {"id":id, "name":'赵七',"phone":'15727713819'},
                 dataType: "json",
                 success: function (data) {
                     alert(data);//返回1表示成功
                 },
                 error: function (XMLHttpRequest, textStatus, errorThrown) {
                     alert(XMLHttpRequest + "," + textStatus + "," + errorThrown);
                 }
             });
         });
         function del(id) {
             $.ajax({
                 url: "api/Values/Delete",
                 type: "Delete",
                 data: { "id": id },
                 dataType: "json",
                 success: function (data) {
                     alert(data);//返回1表示成功
                 },
                 error: function (XMLHttpRequest, textStatus, errorThrown) {
                     alert(XMLHttpRequest + "," + textStatus + "," + errorThrown);
                 }
             });
         }
    
         function updata(id) {
             $.ajax({
                 url: "api/Values/Put",
                 type: "Put",
                 data: { "id": id, "name": '黄八', "phone": '15927713819' },
                 dataType: "json",
                 success: function (data) {
                     alert(data);//返回1表示成功
                 },
                 error: function (XMLHttpRequest, textStatus, errorThrown) {
                     alert(XMLHttpRequest + "," + textStatus + "," + errorThrown);
                 }
             });
         }
        </script>
    

      AJAX调用WebApi结果:

    PS:虽然一路上的坑,回想起来也不错,这过程!!欠缺太多了!!(第一次笔记。)

    成功的路上并不拥挤,因为坚持的人并不多!!!
  • 相关阅读:
    Django中多表的增删改查操作及聚合查询、F、Q查询
    路由控制
    路由、视图、模板主要知识点回顾
    创建文件linux
    关于shell,环境变量放置在?
    snprintf和string操作函数
    C/C++的存储区域的划分
    001
    SAMBA服务器
    归并排序原理详解!
  • 原文地址:https://www.cnblogs.com/back/p/5418449.html
Copyright © 2011-2022 走看看