ASP.NET MVC提交LIST列表到后台接收不到数据
兄跌 你看到这篇文章的时候已经找到答案了。
我在解决这个问题的端倪的时候已经浪费了我一个下午的休假时间。所以你应该给我一个赞!!!
不废话了上代码:
Entity(Model)
[Serializable]
public partial class dictionarys
{ #region Model public string id
{
set;
get;
}
/// <summary>
///
/// </summary>
public string parentID
{
set;
get;
}
/// <summary>
///
/// </summary>
public string text
{
set;
get;
}
/// <summary>
///
/// </summary>
public string value
{
set;
get;
}
/// <summary>
///
/// </summary>
public string orderIndex
{
set;
get;
}
/// <summary>
///
/// </summary>
public bool isSystem
{
set;
get;
}
/// <summary>
///
/// </summary>
public bool isDel
{
set;
get;
}
/// <summary>
///
/// </summary>
public DateTime createTime
{
set;
get;
}
/// <summary>
///
/// </summary>
public DateTime updateTime
{
set;
get;
}
#endregion Model }
Controllers的代码如下:
public ActionResult Test1()
{
List<DapperTemplate.Model.dictionarys> list1 = new List<DapperTemplate.Model.dictionarys>();
int i = ;
while (i < )
{
list1.Add(new DapperTemplate.Model.dictionarys()
{
id = Guid.NewGuid().ToString(),
text = "项目" + i,
value = "项目" + i,
parentID = "0000-0000-0000-0000-0000",
orderIndex = i.ToString(),
isSystem = false,
isDel = false,
createTime = DateTime.Now,
updateTime = DateTime.Now, }); i++;
} return View(list1);
}
View的代码如下:
@model List<DapperTemplate.Model.dictionarys>
<form action="/dictionarys/Test" method="post" id="form1">
@for (int i = ; i < Model.Count; i++)
{
<div>
@Html.Raw(string.Format("<input type='text' name='list[{0}].id' value='{1}'/>", i.ToString(), Model[i].id))
@Html.Raw(string.Format("<input type='text' name='list[{0}].text' value='{1}'/>", i.ToString(), Model[i].text))
@Html.Raw(string.Format("<input type='text' name='list[{0}].value' value='{1}'/>", i.ToString(), Model[i].value)) </div>
}
<input type="submit" value="提交" />
</form>
<input type="button" value="提交" id=”button1” />
点击提交监测Chrome流量发现如下:

发现了一个猫腻这是酱紫的规律:
List[0].propertyName
…
…
…
List[1].propertyName
…
…
…
List[2].propertyName
…
…
…
那么我用jquery的ajax提交一个数据对比一下参数格式。
JavaScript代码如下:
var queryParams = {
"list": [
{
"id": "0001",
"text": "0001",
"value": "0001",
"parentID": "0001",
"text": "0001",
"orderIndex": "0001",
"isSystem": 0,
"isDel": 0,
"createTime": "2018-04-22 20:21:00",
"updateTime": "2018-04-22 20:21:00"
}, {
"id": "0002",
"text": "0002",
"value": "0002",
"parentID": "0002",
"text": "0002",
"orderIndex": "0002",
"isSystem": 0,
"isDel": 0,
"createTime": "2018-04-22 20:21:00",
"updateTime": "2018-04-22 20:21:00"
}, {
"id": "0003",
"text": "0003",
"value": "0003",
"parentID": "0003",
"text": "0003",
"orderIndex": "0003",
"isSystem": 0,
"isDel": 0,
"createTime": "2018-04-22 20:21:00",
"updateTime": "2018-04-22 20:21:00"
}, {
"id": "0004",
"text": "0004",
"value": "0004",
"parentID": "0004",
"text": "0004",
"orderIndex": "0004",
"isSystem": 0,
"isDel": 0,
"createTime": "2018-04-22 20:21:00",
"updateTime": "2018-04-22 20:21:00"
}, {
"id": "0005",
"text": "0005",
"value": "0005",
"parentID": "0005",
"text": "0005",
"orderIndex": "0005",
"isSystem": 0,
"isDel": 0,
"createTime": "2018-04-22 20:21:00",
"updateTime": "2018-04-22 20:21:00"
}
]
}
$.ajax({
type: "POST",
dataType: "json",
url: "/dictionarys/Test",
traditional: false,
data: queryParams,
success: function (response) {
alert(JSON.stringify(response));
}
});
点击提交监测Chrome流量发现如下

发现了一个猫腻这是酱紫的规律:
List[0][ propertyName]
…
…
…
List[1][ propertyName]
…
…
…
List[2][ propertyName]
…
…
…
原来是这里有这么个鬼猫腻
List[2]. propertyName和List[2][ propertyName]
音乐响起!
我们不一样!
我们不一样!
我们不一样!
Fuck jquery 序列化提交就是这个鬼样子,我也很绝望啊!!!
于是乎我度娘了一下卧槽卧槽卧槽还真的有解决办法了。
JavaScript代码如下:
function parseParam(param, key) {
var paramStr = ''
if (param instanceof String || param instanceof Number || param instanceof Boolean) {
paramStr += '&' + key + '=' + encodeURIComponent(param)
} else {
$.each(param, function (i, p) {
if (p == null || p == undefined)
return true
var k = key == null ? i : key + (param instanceof Array ? '[' + i + ']' : '.' + i)
paramStr += '&' + parseParam(this, k)
})
}
return paramStr.substr(1)
}
调用如下:
$.ajax({
type: "POST",
dataType: "json",
url: "/dictionarys/Test",
traditional: false,
data: parseParam(queryParams),
success: function (response) {
alert(JSON.stringify(response));
}
});
好了可以愉快的玩耍了!!!
哎 西八!
如果这篇文章对您有帮助,您可以打赏我

技术交流QQ群:15129679
ASP.NET MVC提交LIST列表到后台接收不到数据的更多相关文章
- FineAdmin.Mvc 使用ok-admin+ASP.NET MVC搭建的通用权限后台管理系统
FineAdmin.Mvc 介绍 使用ok-admin+ASP.NET MVC搭建的通用权限后台管理系统RightControl后台layui模板不太好看,换成ok-admin v2.0重写一遍.项目 ...
- ASP.NET MVC提交一个较复杂对象至WCF Service
前一篇<jQuery.Ajax()执行WCF Service的方法>http://www.cnblogs.com/insus/p/3727875.html 我们有练习在asp.net mv ...
- 【转】ASP.NET MVC 入门教程列表
ASP.NET MVC小论 2008-12-04 11:11 by T2噬菌体, 8052 visits, 网摘, 收藏, 编辑 摘要:ASP.NET MVC作为微软官方的.NET平台下MVC解决方案 ...
- ASP.NET MVC 学习3、Controller左手从Model获取数据,右手传递到View页面
参考:http://www.asp.net/mvc/tutorials/mvc-4/getting-started-with-aspnet-mvc4/accessing-your-models-dat ...
- Spring Mvc 页面传递数组到后台接收
1.定义一个简单的类 User.java public class User { private Integer id; private String name; public Integer get ...
- 使用SignalR ASP.NET Core来简单实现一个后台实时推送数据给Echarts展示图表的功能
什么是 SignalR ASP.NET Core ASP.NET Core SignalR 是一种开放源代码库,可简化将实时 web 功能添加到应用程序的功能. 实时 web 功能使服务器端代码可以立 ...
- 关于delete请求,后台接收不到数据
在前端用axios需要这样写 /** * 删除数据 */export function del(url, data = {}) { return axios.delete(url, { data: q ...
- 在asp.net mvc中将checkbox传到后台时总是true的解决方法
我今天在做同城交友网站(www.niyeuwo.com)时发现,不管checkbox是否选 中,传到Controller时总是true,后来在查网上查了资料才知道,原来是jQuery在传值时写错了. ...
- Asp.net mvc上传多张图片后台存储
前台页面通过<file name="img">标签数组上传图片,后台根据Request.Files["img"]来接收前台上传的图片. 1 Syst ...
随机推荐
- Programmed Adjustable Power
Programmed Adjustable Power I just explored an easy scheme to design a high precision programmed adj ...
- What is CMSIS-DAP
The mbed HDK and mbed-enabled hardware support the CMSIS-DAP debug interface, which consists of an a ...
- 在windows server 2008 R2 64bit上面配置PI OPC Server的DCOM
今天想配置PI OPC SERVER的DCOM设置,但是发现在“运行dcomcnfg->组件服务-计算机-我的电脑-DCOM设置”中找不到PI OSI DA Server.如下图所示 这是以前从 ...
- Delphi 获取命令行输出的函数
function GetDosOutput(CommandLine: string; Work: string = 'C:\'): string; var SA: TSecurityAttribute ...
- 对json数据key进行替换
原文:https://blog.csdn.net/qq_39750658/article/details/83411897 import java.util.HashMap; import java. ...
- 详细解读Volley(五)—— 通过源码来分析业务流程
一.初始化请求队列并运行 我们用Volley时,最先开始的就是初始化请求队列,一种常见的写法如下: public class MyApplication extends Application { p ...
- 在EditText中添加QQ表情
本文参考自:http://blog.csdn.net/wulianghuan/article/details/8583921 在输入框中输入表情是每个聊天软件的必备功能,做到这点仅需要将表情放入工程图 ...
- GridView和SimpleAdapter实现网格布局
android:horizontalSpacing 元素之间的水平间距 android:verticalSpacing 元素之间的垂直间距 android:numColumns ...
- WinForm 自动完成控件实例代码简析
在Web的应用方面有js的插件实现自动完成(或叫智能提示)功能,但在WinForm窗体应用方面就没那么好了. TextBox控件本身是提供了一个自动提示功能,只要用上这三个属性: AutoComple ...
- 全文居中及DIV居中
第一种方案(全文档): body { text-align: center; } body div { margin: 0 auto; } 第二种方案(某DIV): .testing- ...