zoukankan      html  css  js  c++  java
  • Ajax 通过post提交数据到一般处理程序,后台快速获取数据的方法

    1.通过serialize()方式传递json数据

    注意:前端html表单 name值应该为后台类中的字段名称 例如:<input  name="S_类字段名称" type='text'  id="S_类字段名称" />

    1.1 js

    var x = encodeURI(jQuery("#xmfs input,select,textarea").serialize());
    jQuery.ajax({
           type: "POST",
           url: "../Handler/zHandler.ashx?Action=AddRew",
           data: x,
           success: function (datad) {
                 alert("提交成功!");
           },
           dataType: "json"
    });
    js serialize()

    1.2 cs通过类获取post提交的数据

    L_CPROJECT project = new L_CPROJECT();
    Type Pproject = project.GetType();
    GetFormValue(project, Pproject);//处理附件问题

    1.3 GetFormValue 方法

    private void GetFormValue(object project, Type Pproject)
    {
        foreach (string item in con.Request.Form.AllKeys)
        {
            PropertyInfo cons = Pproject.GetProperty(item.Replace("S_", ""));
            //表单内的input等的name值命名规范为S_类字段名
            if (cons != null)
            {
                var valtype = cons.PropertyType;
                 //判断convertsionType是否为nullable泛型类
                  if (valtype.IsGenericType && valtype.GetGenericTypeDefinition().Equals(typeof(Nullable<>)))  
                  {
                        //如果type为nullable类,声明一个NullableConverter类,该类提供从Nullable类到基础基元类型的转换  
                        System.ComponentModel.NullableConverter nullableConverter = 
    new System.ComponentModel.NullableConverter(valtype);
    
                         //将type转换为nullable对的基础基元类型  
                         valtype = nullableConverter.UnderlyingType;
                    }
                        string text = HttpUtility.UrlDecode(Request.Form[item].Trim());
                        cons.SetValue(project, Convert.ChangeType(text, valtype), null);
             }
         }
    }
    获取传递值

    2.通过JSON.stringify(data) 多条数据传递

    注意:arr.push({ SUBID: doc.attr("su"), PURID: 12, SU: doc.val(),SU:12 })中的每个name与L_CSECTION类中的字段名称对应

     js:JSON.stringify(arr)

    var arr = new Array();
    jQuery(".new").each(function (index, link) {
        var doc = jQuery(this).find(".thisid");
        arr.push({ SUBID: doc.attr("su"), PURID: 12, SU: doc.val(),SU:12 });
    });
    jQuery.ajax({
          type: "POST",
          url: "../Handler/zProjndler.ashx?Action=AddSUBPACKAGE",
          data: JSON.stringify(arr),
          success: function (datas) {
    
           },
          dataType: "json"
    });
    JSON.stringify(arr)

    cs

    var sr = new StreamReader(Request.InputStream);
    var stream = sr.ReadToEnd();
    List<L_CSECTION> _list = jsonHelp.getObjectByJson<L_CSECTION>(stream);
    for (int i = 0; i < _list.Count; i++)
    {
       //对数据进行操作
    }

    jsonHelp

    public static class jsonHelp
    {
        internal static List<T> getObjectByJson<T>(string jsonString)
        {
           // 实例化DataContractJsonSerializer对象,需要待序列化的对象类型
           DataContractJsonSerializer serializer = new DataContractJsonSerializer(typeof(List<T>));
           //把Json传入内存流中保存
    
           MemoryStream stream = new MemoryStream(Encoding.UTF8.GetBytes(jsonString));
           // 使用ReadObject方法反序列化成对象
           object ob = serializer.ReadObject(stream);
           List<T> ls = (List<T>)ob;
           return ls;
        }
             
    }
    将json数据转换为object对象
  • 相关阅读:
    Hessain 方法重载
    mac 类似Xshell
    idea & datagrip 注册码
    mac 安装mysql 修改密码
    securecrt 的安装
    datagrip的使用
    mac 安装oracle
    mac 安装mysql
    destoon 会员整合Ucenter/Discuz!/PHPWind教程
    destoon 深度整合discuz x2 UC 之免邮箱二次验证
  • 原文地址:https://www.cnblogs.com/lovable/p/7889564.html
Copyright © 2011-2022 走看看