JS提交对象数组到服务端的方法总结(C#实例)
*转载请注明出处:
作者: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#实例)的更多相关文章
- node.js中ws模块创建服务端和客户端,网页WebSocket客户端
首先下载websocket模块,命令行输入 npm install ws 1.node.js中ws模块创建服务端 // 加载node上websocket模块 ws; var ws = require( ...
- Vue.js与 ASP.NET Core 服务端渲染功能整合
http://mgyongyosi.com/2016/Vuejs-server-side-rendering-with-aspnet-core/ 原作者:Mihály Gyöngyösi 译者:oop ...
- js插件---WebUploader 如何接收服务端返回的数据
js插件---WebUploader 如何接收服务端返回的数据 一.总结 一句话总结: uploadSuccess有两个参数,一个是file(上传的文件信息),一个是response(服务器返回的信息 ...
- (8)Linux(客户端)和Windows(服务端)下socket通信实例
Linux(客户端)和Windows(服务端)下socket通信实例: (1)首先是Windows做客户端,Linux做服务端的程序 Windows Client端 #include <st ...
- js页面(页面上无服务端控件,且页面不刷新)实现请求一般处理程序下载文件方法
对于js页面来说,未使用服务端控件,点击下载按钮时不会触发服务端事件,且不会提交数据到服务端页面后台进行数据处理,所以要下载文件比较困难.且使用jQ的post来请求一般处理程序也不能实现文件的下载,根 ...
- supermap iclient for js 标签专题图(服务端)
<!DOCTYPE><html> <head> <meta http-equiv="Content-Type" content=" ...
- node.js中net网络模块TCP服务端与客户端的使用
node.js中net模块为我们提供了TCP服务器和客户端通信的各种接口. 一.创建服务器并监听端口 const net = require('net'); //创建一个tcp服务 //参数一表示创建 ...
- nuxt.js部署vue应用到服务端过程
由于seo的需要,最近将项目移植道nuxt.js下采用ssr渲染 移植完成后,一路顺畅,但是到了要部署到服务器端上时候,还是个头疼的问题,但最终还是顺利完成.现在记录一下部署中的过程. 注:部署时候过 ...
- 三种客户端访问wcf服务端的方法 C#
原文 http://blog.csdn.net/zlj002/article/details/7914556 string jsonstr = String.Empty; string url = & ...
随机推荐
- [转载]fullPage.js中文api 配置参数~
fullPage.js中文api 配置参数 选项 类型 默认值 说明 verticalCentered 字符串 true 内容是否垂直居中 resize 布尔值 false 字体是否随着窗口缩放而缩放 ...
- init.d functions的daemon函数
daemon函数说明 # 该函数的作用是启动一个可执行的二进制程序: # 使用方法: # .daemon {--check program|--check=program} [--user usern ...
- ubuntu源笔记
比如说清华大学的ipv6镜像源:https://mirrors.tuna.tsinghua.edu.cn/help/ubuntu/ /etc/apt/sources.list为包管理工具apt的软件包 ...
- [LeetCode] Range Sum Query 2D - Mutable 二维区域和检索 - 可变
Given a 2D matrix matrix, find the sum of the elements inside the rectangle defined by its upper lef ...
- [LeetCode] Triangle 三角形
Given a triangle, find the minimum path sum from top to bottom. Each step you may move to adjacent n ...
- .NET跨平台之旅:基于.NET Core改写EnyimMemcached,实现Linux上访问memcached缓存
注:支持 .NET Core 的 memcached 客户端 EnyimMemcachedCore 的 NuGet 包下载地址:https://www.nuget.org/packages/Enyim ...
- FtpUtil
/* * 文件名:FtpUtil.java * 版权:Copyright 2000-2007 Huawei Tech. Co. Ltd. All Rights Reserved. * 描述: TopE ...
- HTML中为何p标签内不可包含div标签?那哪些块元素里面不能放哪些块元素呢?
先看下面的例子你就能明白两者的差别: <p>测试一下块元素与<span>内联元素</span>的差别</p> <p>测试一下<div& ...
- RedisUtil 工具类
package com.test; import redis.clients.jedis.Jedis; import redis.clients.jedis.JedisPool; import red ...
- python学习之路 第六天
1.正则表达式 re.match() 从头匹配: re.match("[0-9]","123abc789") 只匹配一个数字: re.match("[ ...