zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    声明以及字符表述类--字母大小写的敏感性
    条款52:写了placement new 也要写placement delete(write placement delete if you write placement new)
    verdi知识点
    关于$test$plusargs和$value$plusargs的小结
    条款40:明智而审慎地使用多重继承(use multiple inheritance judiciously)
    条款39:明智而审慎地使用private继承(use private inheritance judiciously)
    条款38:通过复合塑模has-a或“根据某物实现出”
    条款37:绝不重新定义继承而来的缺省参数值(Never redefine a function's inherited default parameter value)
    自学nodejs系列
    五个典型的JavaScript面试题
  • 原文地址:https://www.cnblogs.com/bamboo-zhang/p/9890230.html
Copyright © 2011-2022 走看看