*转载请注明出处:

作者:willingtolove;

本文链接:http://www.cnblogs.com/willingtolove/p/4741549.html

正文:

1. 方法一:利用ajax

  1) 客户端js代码:

 //获取对象数组
function GetQAS() {
var stuAnswerList = [];
var stuAnswer = { 'answerID': 1, 'answerType': 1, 'answerContent': 'one', 'answerSingle': 1, 'answerMultiple': '1,2', 'answerTOF': true };
var stuAnswer1 = { 'answerID': 1, 'answerType': 1, 'answerContent': 'two', 'answerSingle': 1, 'answerMultiple': '1,2', 'answerTOF': true }; stuAnswerList.push(stuAnswer);
stuAnswerList.push(stuAnswer);
    return stuAnswerList;
}
//ajax提交数据
function SubmitStuAnswersAjax(stuAnswerArr) { $.ajax({
url: "../../Paper/SubmitStuAnswers",
type: "post",
data: { stuAnswerArr: stuAnswerArr },
async: false,
cache: false,
error: function (XMLHttpRequest, textStatus, errorThrown) {
if (XMLHttpRequest.status == 1001) {
eval(XMLHttpRequest.ResponseText);
} else {
alert("GetPaper error");
}
},
success: function (data) {
alert(data);
}
});
}
//按钮点击方法
function SubmitStuAnswersBtn() {
var stuAnswerArr = GetQAS();
SubmitStuAnswersAjax(stuAnswerArr);
}

  2) 服务端C#代码:

//stuAnswerEntity
public class stuAnswerEntity
{
public int answerID { set; get; }
public int answerType { set; get; }
public int answerSingle { set; get; }
public string answerMultiple { set; get; }
public bool answerTOF { set; get; }
public string answerContent { set; get; }
} //stuAnswerArr 注意前后台变量名称一定要相同
public ActionResult SubmitStuAnswers(List<stuAnswerEntity> stuAnswerArr)
{
bool re = false;
List<stuAnswerEntity> stuAnswerEntityList = new List<stuAnswerEntity>();
stuAnswerEntityList = stuAnswerArr;
//此时stuAnswerArr中就存有前台stuAnswerArr中的数据;
return Content(re.ToString());
}

2. 方法二:js模拟form 进行post提交

  

  1) 客户端js代码:

 function REV_SubmitStuAnswersBtn() {
var stuAnswerArr=JSON.stringify(GetQAS());//转成json字符串
//JS模拟post提交
var REVQForm = document.createElement("form");
REVQForm.setAttribute("method", 'POST');
REVQForm.setAttribute("action", '../Paper/GetREVPaper');
REVQForm.innerHTML = "";
var stuAnswerInput = document.createElement("input");
stuAnswerInput.setAttribute("type", "hidden");
stuAnswerInput.setAttribute("name", 'REVQ');//'REVQ'
stuAnswerInput.setAttribute("value", stuAnswerArr);
REVQForm.appendChild(stuAnswerInput); document.body.appendChild(REVQForm);
REVQForm.submit();
}

  

2) 服务端C#代码:以json字符串的方式传输

public ActionResult GetREVPaper()
{
bool re = false;
string stuAnswerJson = Request["REVQ"] == null ? "" : Request["REVQ"];//'REVQ'
//将json字符串反序列化
List<stuAnswerEntity> studentAnswerList = JsonConvert.DeserializeObject<List<stuAnswerEntity>>(stuAnswerJson); return Content(re.ToString());
}


作者: willingtolove
本文链接: js 提交对象数组到服务端的方法总结
欢迎经常来转转,转载请注明出处!

JS提交对象数组到服务端的方法总结(C#实例)的更多相关文章

  1. node.js中ws模块创建服务端和客户端,网页WebSocket客户端

    首先下载websocket模块,命令行输入 npm install ws 1.node.js中ws模块创建服务端 // 加载node上websocket模块 ws; var ws = require( ...

  2. Vue.js与 ASP.NET Core 服务端渲染功能整合

    http://mgyongyosi.com/2016/Vuejs-server-side-rendering-with-aspnet-core/ 原作者:Mihály Gyöngyösi 译者:oop ...

  3. js插件---WebUploader 如何接收服务端返回的数据

    js插件---WebUploader 如何接收服务端返回的数据 一.总结 一句话总结: uploadSuccess有两个参数,一个是file(上传的文件信息),一个是response(服务器返回的信息 ...

  4. (8)Linux(客户端)和Windows(服务端)下socket通信实例

    Linux(客户端)和Windows(服务端)下socket通信实例: (1)首先是Windows做客户端,Linux做服务端的程序 Windows   Client端 #include <st ...

  5. js页面(页面上无服务端控件,且页面不刷新)实现请求一般处理程序下载文件方法

    对于js页面来说,未使用服务端控件,点击下载按钮时不会触发服务端事件,且不会提交数据到服务端页面后台进行数据处理,所以要下载文件比较困难.且使用jQ的post来请求一般处理程序也不能实现文件的下载,根 ...

  6. supermap iclient for js 标签专题图(服务端)

    <!DOCTYPE><html> <head> <meta http-equiv="Content-Type" content=" ...

  7. node.js中net网络模块TCP服务端与客户端的使用

    node.js中net模块为我们提供了TCP服务器和客户端通信的各种接口. 一.创建服务器并监听端口 const net = require('net'); //创建一个tcp服务 //参数一表示创建 ...

  8. nuxt.js部署vue应用到服务端过程

    由于seo的需要,最近将项目移植道nuxt.js下采用ssr渲染 移植完成后,一路顺畅,但是到了要部署到服务器端上时候,还是个头疼的问题,但最终还是顺利完成.现在记录一下部署中的过程. 注:部署时候过 ...

  9. 三种客户端访问wcf服务端的方法 C#

    原文 http://blog.csdn.net/zlj002/article/details/7914556 string jsonstr = String.Empty; string url = & ...

随机推荐

  1. oracle触发器

    类型 行级触发器: FOR EACH ROW 影响的每一行都会执行触发器 语句级出发器 默认的模式,一句话才执行一次触发器 触发器不能嵌套,不能含有事务控制语句 何时触发 Before:条件运行前 A ...

  2. Mac下安装GIT的坑

    先去 https://git-scm.com/download/mac 下载 GIT 客户端 双击安装,界面中有三个文件 接着双节 .pkg 文件,却提示无法安装 解决方式是按住 Control ,再 ...

  3. java的会话管理:Cookie和Session

    java的会话管理:Cookie和Session 1.什么是会话 此处的是指客户端(浏览器)和服务端之间的数据传输.例如用户登录,购物车等 会话管理就是管理浏览器客户端和服务端之间会话过程产生的会话数 ...

  4. python框架之django

    python框架之django 本节内容 web框架 mvc和mtv模式 django流程和命令 django URL django views django temple django models ...

  5. redis3.0配置文件详解

    redis.conf #redis.conf # Redis configuration file example. # ./redis-server /path/to/redis.conf #### ...

  6. Linux 共享内存详解一

    共享内存段被多个进程附加的时候,如果不是所有进程都已经调用shmdt,那么删除该共享内存段时,会出现一个临时的不完整的共享内存段(key值是0),无法彻底删除.只有当所有进程都调用shmdt,这个临时 ...

  7. [LeetCode] Find Minimum in Rotated Sorted Array 寻找旋转有序数组的最小值

    Suppose a sorted array is rotated at some pivot unknown to you beforehand. (i.e., 0 1 2 4 5 6 7 migh ...

  8. [个人翻译]Redis 集群教程(上)

    官方原文地址:https://redis.io/topics/cluster-tutorial  水平有限,如果您在阅读过程中发现有翻译的不合理的地方,请留言,我会尽快修改,谢谢.        这是 ...

  9. EF使用CodeFirst方式生成数据库&技巧经验

    前言 EF已经发布很久了,也有越来越多的人在使用EF.如果你已经能够非常熟练的使用EF的功能,那么就不需要看了.本文意在将自己使用EF的方式记录下来备忘,也是为了给刚刚入门的同学一些指导.看完此文,你 ...

  10. Gson将字符串转换成JsonObject和JsonArray

    以下均利用Gson来处理: 1.将bean转换成Json字符串: public static String beanToJSONString(Object bean) { return new Gso ...