*转载请注明出处:

作者: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. GridView 树形结构分组的功能

    在“会飞的鱼”博客中看到GridView实现树形结构的代码,经过修改,添加了树形结构中的复选框功能,欢迎吐槽. 源地址:http://www.cnblogs.com/chhuic/archive/20 ...

  2. Mysql查询语句使用select.. for update导致的数据库死锁分析

    近期有一个业务需求,多台机器需要同时从Mysql一个表里查询数据并做后续业务逻辑,为了防止多台机器同时拿到一样的数据,每台机器需要在获取时锁住获取数据的数据段,保证多台机器不拿到相同的数据. 我们My ...

  3. 烂泥:zabbix3.0安装与配置

    本文由ilanniweb提供友情赞助,首发于烂泥行天下 想要获得更多的文章,可以关注我的微信ilanniweb 这个月又快过完了,最近也比较忙,没时间写文章,今天挤点时间把zabbix3.0安装与配置 ...

  4. redis.conf配置详细解析

    # redis 配置文件示例 # 当你需要为某个配置项指定内存大小的时候,必须要带上单位, # 通常的格式就是 1k 5gb 4m 等酱紫: # # 1k => 1000 bytes # 1kb ...

  5. nginx服务傻瓜搭建

    nginx服务傻瓜搭建 安装步骤: 一.先准备好相关源码包和程序包,如下图 所有包都在云服务器的/src目录下. 二.安装 1.安装nginx服务器,支持vod stream.fileupload c ...

  6. 项目游戏开发日记 No.0x000003

    14软二杨近星(2014551622) 刚刚过去清明节, 意味着离交项目的时间, 还有三个星期, 有点着急了, 可是, 还是觉得无所适从... 项目进展: 刚刚过去的一周, 事非常多, 以至于, 进展 ...

  7. 升级xcode8之后出现报错提示,提示swift版本问题

    最近Xcode升级了,出现了各种蛋疼的错误提示,今天遇到个导入框架出现了提示Swift版本的问题,具体如下: "Use Legacy Swift Language Version" ...

  8. JS中typeof与instanceof的区别

    JavaScript 中 typeof 和 instanceof 常用来判断一个变量是否为空,或者是什么类型的.但它们之间还是有区别的: Typeof typeof 是一个一元运算,放在一个运算数之前 ...

  9. SQL用法操作合集

    SQL用法操作合集   一.表的创建 1.创建表 格式: 1 CREATE TABLE 表名 2 (列名 数据类型(宽度)[DEFAULT 表达式][COLUMN CONSTRAINT], 3 ... ...

  10. js 页面刷新location.reload和location.replace的区别小结

    reload 方法,该方法强迫浏览器刷新当前页面. 语法: location.reload([bForceGet]) 参数: bForceGet, 可选参数, 默认为 false,从客户端缓存里取当前 ...