asp.net ajax传递Json给aspx.cs后台 webmethod方法传递json

1、提取一个向后台写入数据的方法

            ///向后台cs页面请求数据的方法
            function myPost(url,data,func) {
                $.ajax({
                    type: "post", //要用post方式  
                    data:data,
                    url: url,//"Demo.aspx/SayHello",//方法所在页面和方法名
                    contentType: "application/json; charset=utf-8",
                    dataType: "json",
                    success: function (data) {
                        func(1,data.d);
                    },
                    error: function (err) {
                        func(-1,err);
                    }
                });
            }

2.1、没有参数的传递到后台的写法

            myPost("orgList.aspx/GetOrgList","{}", function (isSuccess, data) {
                    if (isSuccess < 0) { layer.msg(data); return; }
                    if (data && data.length > 0) {
                        zTreeNodes = eval('(' + data + ')');
                        zTreeObj = $.fn.zTree.init($("#tree"), setting, zTreeNodes);
                    }
                });    

2.2带参数的写法

              myPost("orgList.aspx/GetModel","{ID:"+treeNode.id+"}", function (isSuccess, data) {
                    if (isSuccess < 0) { layer.msg(data); return; }
                    if (data && data.length > 0) {
                        var model = eval('(' + data + ')');
                        for (var key in model) {
                            vue.model[key] = model[key];
                        }
                    }
                });    

2.3传递json的写法

                var model = String.toSerialize(vue.model);//.replace(/\"/g,"'");  
                myPost("orgList.aspx/Save","{value: '"+model+"'}", function (isSuccess, data) {//当传递的是对象的时候,一定要保证将对象转换为字符串
                    if (isSuccess < 0) { layer.msg(data); return; }
                    if (data == 1) {
                        //重新加载控件
                        GetPowerTree();
                        clearData();
                        layer.msg("保存成功!");
                    }
                    else if (data == -1) {
                        layer.msg("保存失败!");
                    }
                    else if (data == -2) {
                        layer.msg("此机构已存在!");
                    }
                });

3.1 无参数后台接收方法

        [WebMethod]
        public static string GetOrgList()
        {
            DataTable dt = bll.GetList("1=1").Tables[0];
            return JsonHelper.DataTableToJSON(dt);
        }

3.2带参数的后台接收方法

       [WebMethod]
        public static string GetModel(long ID)
        {
            Model.Org_Orginfo model = bll.GetModel(ID);
            return JsonHelper.ObjectToJSON(model);
        }

3.3传递json的后台接收方法

        [WebMethod]
        public static string Save(string value)
        {
            bool succ = false;
            Model.Org_Orginfo model = JsonHelper.JSONToObject<Model.Org_Orginfo>(value);
            if (model.id < 0)
            {
                if (bll.Exists($"orgName='{model.orgName}'")) return "-2";
                model.Createtime = DateTime.Now;
                model.CreateUser = 1;//创建人-------------------------------------
                succ = bll.Add(model);
                return succ ? "1" : "-1";
            }
            else
            {
                if (bll.Exists($"orgName='{model.orgName}' and id={model.id.ToString()}")) return "-2";
                succ = bll.Update(model);
                return succ ? "1" : "-1";
            }
        }

参考:http://www.cnblogs.com/huanbia/archive/2013/03/03/2941293.html

           https://blog.csdn.net/naruto517308294/article/details/49097493

 

转载于:https://www.cnblogs.com/bamboo-zhang/p/9890230.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
使用 AJAX 调用 ASP.NET 后台方法可以通过以下步骤实现: 1. 在 ASP.NET Web 应用程序中添加一个 Web 服务 (Web Service),或者一个 Web API 控制器 (Web API Controller)。 2. 在 Web 服务或 Web API 控制器中创建一个可供 AJAX 调用的方法。 3. 在 ASP.NET 页面中添加一个 ScriptManager 控件,并启用 ASP.NET AJAX。 4. 在页面中使用 JavaScript/jQuery 编写 AJAX 调用,将请求发送到 Web 服务或 Web API 控制器中的方法。 下面是一个简单的示例: 1. 创建一个 Web 服务或 Web API 控制器 ```csharp // Web 服务 [WebService(Namespace = "http://tempuri.org/")] [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)] [System.ComponentModel.ToolboxItem(false)] [System.Web.Script.Services.ScriptService] public class MyWebService : System.Web.Services.WebService { [WebMethod] public string HelloWorld(string name) { return "Hello " + name + "!"; } } // Web API 控制器 public class MyApiController : ApiController { [HttpGet] public string HelloWorld(string name) { return "Hello " + name + "!"; } } ``` 2. 在 ASP.NET 页面中添加 ScriptManager 控件,并启用 ASP.NET AJAX ```html <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="MyPage.aspx.cs" Inherits="MyNamespace.MyPage" %> <!DOCTYPE html> <html> <head runat="server"> <title></title> <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script> <asp:ScriptManager runat="server" EnablePartialRendering="true" /> </head> <body> <form id="form1" runat="server"> <div> <input type="text" id="name" /> <button id="helloButton">Say hello</button> <div id="result"></div> </div> </form> <script type="text/javascript"> $(document).ready(function () { $('#helloButton').click(function () { var name = $('#name').val(); $.ajax({ type: "POST", url: "MyWebService.asmx/HelloWorld", // 或者 "api/MyApi/HelloWorld" data: JSON.stringify({ name: name }), contentType: "application/json; charset=utf-8", dataType: "json", success: function (response) { $('#result').text(response.d); }, error: function (xhr, status, error) { console.log(xhr.responseText); } }); }); }); </script> </body> </html> ``` 在上面的示例中,我们使用了 jQuery 库来简化 AJAX 调用,通过给按钮添加一个 click 事件来触发 AJAX 请求,将用户输入的姓名作为参数传递后台方法,并将返回结果显示在页面上的一个 div 元素中。 ASP.NET Web 应用程序中的 Web 服务和 Web API 控制器都可以使用这种方式来实现 AJAX 调用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值