• MVC中使用ajax传递json数组


    解决方法

    去www.json.org下载JSON2.js
    再调用JSON.stringify(JSONData)将JSON对象转化为JSON串。

    var people = [{ "UserName": "t1", "PassWord": "111111", "Sex": "男" }, { "UserName": "t2", "PassWord": "222222", "Sex": "女"}];

    再构造URL回传给服务器端:
    $("#btnSend").bind("click", function() {
      $.post("a.ashx", {xxxx:JSON.stringify(people)}, function(data, returnstatus) { }, "json");
      });

    function customerCheck() {
                        selectRows = $("#ui_customerCheck_dg").datagrid('getSelections');
                        
                        var jsonData = JSON.stringify(selectRows);
                        console.info(jsonData);
    
                        if (selectRows.length > 0) {
                            console.info(selectRows);
                           
                            $.ajax({
                                url: 'ashx/bg_customerCheck.ashx?action=checkedPass',
                                data: { "selectRows": jsonData },
                                dataType: 'html',
                                success: function (rData) {
                                    var dataJson = eval('(' + rData + ')');    //转成json格式
                                    if (dataJson.success) {
                                        $.show_warning("提示", dataJson.msg);
                                        $("#ui_customerCheck_dg").datagrid("reload").datagrid('clearSelections').datagrid('clearChecked');
                                    } else {
                                        $.show_warning("提示", dataJson.msg);
                                    }
                                }
                            });
                        }
                        else {
                            $.show_warning("提示", "请选择需要审核的单据!");
                            return;
                        }
                        //console.info(selectRows);
                        //$("#ui_customerCheck_dg").datagrid('unselectAll');
    
                    }
    using System;
    using System.Collections.Generic;
    using System.Web;
    using LT.EPC.BLL;
    using LT.EPC.Common;
    using LT.EPC.Model;
    using LT.EPC.SQLServerDAL;
    
    namespace LT.EPC.WebUI.admin.ashx
    {
        /// <summary>
        /// bg_customerCheck 的摘要说明
        /// </summary>
        public class bg_customerCheck : IHttpHandler
        {
    
            public void ProcessRequest(HttpContext context)
            {
                context.Response.ContentType = "application/json";
                string action = context.Request.Params["action"];
                UserOperateLogDataContract userOperateLog = null;   //操作日志对象
                try
                {
                    UserDataContract user = UserHelper.GetUser(context); //获取cookie里的用户对象
                    userOperateLog = new UserOperateLogDataContract();
                    userOperateLog.UserIp = CommonHelper.GetIP(context.Request.UserHostAddress);
                    userOperateLog.UserName = user.UserId;
    
                    switch (action)
                    {
                        case "checkedPass":
                            var selectRowsJson = context.Request.Params["selectRows"] ?? "";
    
                            List<UserDataContract> userList = DeserializeUserList(selectRowsJson);
    
                            List<CustomerCheckDataContract> checkList = DeserializeCheckList(selectRowsJson);
    
                            if (new CustomerCheckMgr().ChangeOrderStatus(checkList))
                            {
                                userOperateLog.OperateInfo = "客服审核";
                                userOperateLog.IfSuccess = true;
                                userOperateLog.Description = "审核通过" + null;
                                context.Response.Write("{"msg":"审核通过!","success":true}");
                            }
                            else
                            {
                                userOperateLog.OperateInfo = "客服审核";
                                userOperateLog.IfSuccess = false;
                                userOperateLog.Description = "客服审核失败";
                                context.Response.Write("{"msg":"客服审核失败!","success":false}");
                            }
    
                            UserOperateLogMgr.InsertOperateInfo(userOperateLog);
                            break;
    
                        default:
                            context.Response.Write("{"result":"参数错误!","success":false}");
                            break;
                    }
                }
                catch (Exception ex)
                {
                    context.Response.Write("{"msg":"" + JsonHelper.StringFilter(ex.Message) + "","success":false}");
                    userOperateLog.OperateInfo = "客服审核功能异常";
                    userOperateLog.IfSuccess = false;
                    userOperateLog.Description = JsonHelper.StringFilter(ex.Message);
                    UserOperateLogMgr.InsertOperateInfo(userOperateLog);
                }
            }
    
            public bool IsReusable
            {
                get
                {
                    return false;
                }
            }
    
            //直接将Json转化为实体对象
            public List<UserDataContract> DeserializeUserList(string json)
            {
                var u = JsonHelper.FromJson<List<UserDataContract>>(json);
                return u;
            }
    
            //直接将Json转化为实体对象
            public List<CustomerCheckDataContract> DeserializeCheckList(string json)
            {
                var o = JsonHelper.FromJson<List<CustomerCheckDataContract>>(json);
                return o;
            }
        }
    }
  • 相关阅读:
    Selenium+Pytest自动化测试框架实战
    WPF性能优化经验总结
    C#跨窗体调用控件
    C# lock
    硬实时系统,到底多硬才算Hard Real Time System
    [GPIO]推荐一种超简单的硬件位带bitband操作方法,让变量,寄存器控制,IO访问更便捷,无需用户计算位置
    【STM32F407的DSP教程】第50章 STM32F407的样条插补实现,波形拟合丝滑顺畅
    实战技能分享,如何让工程代码各种优化等级通吃,含MDK AC5,AC6,IAR和GCC
    【深入探讨】DMA到底能不能起到加速程序执行的作用,DMA死等操作是否合理,多个DMA数据流同时刷是否处理过来
    《安富莱嵌入式周报》第238期:2021.11.012021.11.07
  • 原文地址:https://www.cnblogs.com/ShaYeBlog/p/4134762.html
Copyright © 2020-2023  润新知