• HttpPostHelper_获取前台Form表单提交的数据


    //1.Josn参数序列化
    var obj = HttpPostHelper.DeserializeObject<S_USER>(Request);
    S_USER---S_USER类

    /****************************** Module Header ******************************
    Author: 
    Create Date: 2018-10-9
    Explain: HttpPost帮助类
    Alter History:  
    ***************************************************************************/
    using System;
    using System.Collections.Generic;
    using System.IO;
    using System.Web;
    using System.Web.Script.Serialization;
    
    namespace BD.Common
    {
        /// <summary>
        /// HttpPost帮助类
        /// </summary>
        public class HttpPostHelper
        {
            /// <summary>
            /// 保存接收并返回Model实体对象
            /// </summary>
            /// <typeparam Model实体类="T"></typeparam>
            /// <param 控制器层面直接传递Request="Request"></param>
            /// 使用方法:如果JSON里带ID,则ID必须为有值的参数,建议赋“0”,否则会导致JSON为空无法解析而报错。
            /// 前台ajax格式约定: data: JSON.stringify(参数对象),不需要像普通的方法,用data:{ a:'a' , b:'b', c:'c'}
            /// <returns></returns>
            public static T DeserializeObject<T>(HttpRequestBase Request)
            {
                try
                {
                    StreamReader sr = new StreamReader(Request.InputStream);
                    string stream = sr.ReadToEnd();
                    var obj = new JavaScriptSerializer().Deserialize<T>(stream);
                    return obj;
                }
                catch (Exception e)
                {
                    return default(T);
                }
            }
    
    
            /// <summary>
            /// 保存接收并返回Model实体对象
            /// </summary>
            /// <typeparam Model实体类="T"></typeparam>
            /// <param 控制器层面直接传递Request="Request"></param>
            /// 使用方法:如果JSON里带ID,则ID必须为有值的参数,建议赋“0”,否则会导致JSON为空无法解析而报错。
            /// 前台ajax格式约定: data: JSON.stringify(参数对象),不需要像普通的方法,用data:{ a:'a' , b:'b', c:'c'}
            /// <returns></returns>
            public static T DeserializeObject<T>(HttpRequestBase Request, Dictionary<string, string> dic)
            {
                try
                {
                    StreamReader sr = new StreamReader(Request.InputStream);
    
                    string stream = sr.ReadToEnd();
    
                    foreach (var item in dic)
                    {
                        stream = stream.Replace(item.Key, item.Value);//需要替换 单条
                    }
                    var obj = new JavaScriptSerializer().Deserialize<T>(stream);
                    return obj;
                }
                catch (Exception e)
                {
                    return default(T);
                }
            }
    
    
            /// <summary>
            /// 保存接收并返回Model实体对象
            /// </summary>
            /// <typeparam Model实体类="T"></typeparam>
            /// <param 控制器层面直接传递Request="Request"></param>
            /// 使用方法:如果JSON里带ID,则ID必须为有值的参数,建议赋“0”,否则会导致JSON为空无法解析而报错。
            /// 前台不约定ajax格式,可任意带参,只需要把json的str丢到这里
            /// <returns></returns>
            public static T DeserializeObject<T>(string strJson)
            {
                try
                {
                    var obj = new JavaScriptSerializer().Deserialize<T>(strJson);
                    return obj;
                }
                catch (Exception)
                {
                    return default(T);
                }
            }
    
        }
    }
    
    

    前端配合使用套路: var obj = $("#userForm").serializeObject();// 对象
    userForm:form表单id
    jQuery serializeObject 序列化form表单Json对象

    
    /**
     * 使用场景:ajax提交表单数据
     */
    /*
    <form>
        <input type="text" name="username" value="123"/>
        <input type="text" name="password"  valur="abc"/>
     </form>
     */
     // 1. serialize() —— 序列化form表单 带name属性的内容为字符串
        JQuery("form").serialize();  
        // "username="123&password="abc"
    	
    // 2. serializeArray() ——返回JSON 对象数组
        JQuery("form").serializeArray();
        // [{name:"username",value:"123"},{name:"password",value:"abc"}]
     
    //  3. 封装一个方法: serializeObject()  ——返回对象
    	JQuery("form").serializeObject()
    	//{username:"123",passwoed:"123"}
    	
        JQuery.prototype.serializeObject = function () {
            var a,o,h,i,e;
            a = this.serializeArray();
            o={};
            h=o.hasOwnProperty;
            for(i=0;i<a.length;i++){
                e=a[i];
                if(!h.call(o,e.name)){
                    o[e.name]=e.value;
                }
            }
            return o;
        }
    

    $("#formTable").serializeArray()使用例子

     //获取表单并返回
            function getSearchValue() {
                var val = $("#formTable").serializeArray();
                return JSON.stringify(val);
            }
              $.ajax({
                    url: "/salary_Analysis/Query",
                    type: "POST",// POST,默认是GET
                    dataType: 'json',//根据返回数据类型可以有这些类型可选:xml html script json jsonp text
                    async: true,//是否异步请求
                    data: {//请求携带的参数信息
                        search: getSearchValue(),
                        
                    },
                } )
    
           public string Query(int limit, int offset, string search)
            {
                dynamic searchJson = JsonConvert.DeserializeObject<dynamic>(search);
             for (int i = 0; i < searchJson.Count; i++)
                {
             if ((string)searchJson[i].name == "所在部门")
                    {
                        if ((string)searchJson[i].value != "0")
                        {
    
              ps:namey与value是人为规定的字段即前台input的name
    
            }
             }
               }
    
            }
    
  • 相关阅读:
    selenium webdriver 的环境搭建时注意事项
    python之文件处理
    python的if语句、while循环、for循环
    mysql从库Last_IO_Error: Got fatal error 1236 from master when reading data from binary log: 'Could not find first log file name in binary log index file'报错处理
    openstack之keystone部署
    网关协议
    HTTP协议
    Openstack keystone组件详解
    jboss服务启动失败报:Error occurred during initialization of VM
    python字典的常用操作
  • 原文地址:https://www.cnblogs.com/jsll/p/14377072.html
Copyright © 2020-2023  润新知