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;
        }
    }
}
时间: 2024-10-09 13:42:03

MVC中使用ajax传递json数组的相关文章

MVC中利用ViewBag传递Json数据时的前端处理方法

用viewBag传递Json字符串到前端时,json字符串中的“会被转义为& quot,前端处理方法为@Html.Raw(Json.Encode(ViewBag.Data)),再用eval()函数解析得到json对象:var data=eval("(" + @Html.Raw(Json.Encode(ViewBag.Data)) + “)”); 如何传递的是json对象则前端使用用 jsonData=eval( @Html.Raw(ViewBag.jsonData)); 原文地

Struts2中通过Ajax传递json数据

1.导入Struts2所需要的jar包 下载Struts2的jar包时,可以下载struts-2.5.13-min-lib.zip,然后放到项目的/WebContent/WEB-INF/lib路径下struts-2.5.13-min-lib只包含以下jar包: commons-fileupload-1.3.3.jar commons-io-2.5.jar commons-lang3-3.6.jar freemarker-2.3.23.jar javassist-3.20.0-GA.jar ogn

Spring MVC中jquery ajax传递view

springMVC项目中遇到要使用jqueryAjax向前台传递动态表格的需求,原来的做法是在js中接收数据然后拼接成表格再给jsp显示,后来在这个国外的网站上看到了如下的使用"模板"的设计,觉得很是合理,自己测试了一下,觉得比之前js中拼接好用很多,大大减少了js的压力.我就直接复制原作者的回答了(回答真的很详细了),记录一下,感觉自己又成长了. MyController.java @Controller public class MyController {     @Reques

ASP.NET Web 前台Ajax传递JSON

Json 作为一种轻量级的数据交换格式,主要用于和服务器之间进行交换数据,其数据格式类似于 键值组合形式的数组. 在Web 中使用Ajax传递Json数据时候,就不得不先提一提Form表单,web前台界面中使用的控件默认是嵌在 form中的,而在form下使用asp:button控件,被HTML编译后默认类型为Submit,如此就先于Ajax一步提交了表单,导致Json数据无法正常传递到后台,合理的解决办法是 给Button 设置 OnClientClick="return false;&quo

Ajax(form表单文件上传、请求头之contentType、Ajax传递json数据)

form表单文件上传 上菜 file_put.html <form action="" method="post" enctype="multipart/form-data"> {# 这里必须要请求头格式才能把上传文件的对象传过去 enctype="multipart/form-data"#} 姓名 <input type="text" name="user">

jq ajax传递json对象到服务端及contentType的用法

目录 0.一般情况下,通过键值对的方式将参数传递到服务端 1.ajax 传递复杂json对象到服务端 2.content-Type 对asp.net mvc项目的重要性 0.一般情况下,通过键值对的方式将参数传递到服务端 0.1 客户端代码: $.ajax({ url: 'TestHandler.ashx', type: 'post', data: { name: "admin", age: 10 }, dataType: 'text', success: function (data

MVVM架构~knockoutjs系列之为Ajax传递Ko数组对象

返回目录 一些要说的 这是一个很有意思的题目,在KO里,有对象和数组对象两种,但这两种对象对外表现都是一个function,如果希望得到他的值,需要进行函数式调用,如ko_a(),它的结果为一个具体值或者数组或者函数,而ko_a则表示一个KO对象. 今天主要说一下如何在ajax方法里向后台传递对象和数组等参数,一般说来,我们为后台传递的是字符串和数字,而如果希望传递对象,则需要使用$.param这个方法,下面具体用代码说一下. 一些要做的 一般后以的代码理想是这样的 public JsonRes

Springboot+ajax传输json数组以及单条数据的方法

Springboot+ajax传输json数组以及单条数据的方法 下面是用ajax传输到后台单条以及多条数据的解析的Demo: 结构图如下: 下面是相关的代码: pom.xml: <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/20

AJAX 传递jison数组 ;前端循环辅助数组 -----解决方案

循环赋值给数组 var arrRow = new Array(); for(var i=0;i<checkedArr.length;i++){     arrRow[i] = checkedArr[i].FUN_ID; } ajax传json数组到后端  $.ajax({   url:  "role.do?method=funcRoleAdd",   type : "post", async : false, cache : false, data: {'ro