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对象
  • 相关阅读:
    eclipse中解决update maven之后jre被改成1.5的问题
    Navicat for MySQL密鈅
    静态创建和动态创建对象的区别
    vector相关操作总结
    C++的编码技巧相关总结
    关于VS中未经处理的异常的梳理
    头文件用于声明而不是定义
    SQL单表查询练习部分总结
    delete对象时会自动调用类的析构函数
    SQL中的sum在何时会返回为null
  • 原文地址:https://www.cnblogs.com/lovable/p/7889564.html
Copyright © 2011-2022 走看看