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 ...
 
随机推荐
- [置顶] Linux下发布QT程序
			
Linux下发布QT程序 概述 无论在windows下还是在linux下,可执行程序的运行都依赖于相关的运行库,我们需要将依赖的库找到放到特定的位置,让可执行文件能够找到.在不知道可执行文件依赖哪些库 ...
 - 基于Linux的智能家居的设计(3)
			
2 硬件设计 本课题的硬件设计包含主控制器.传输数据设计.数据採集设计.控制驱动设计.显示设计.门禁设计. 2.1 主控制器 依据方案三选择S3C6410主控芯片,S3C6410是由Samsung ...
 - [转载]vs2017与docker
			
基本需求 系统 win10 vs2017 docker 步骤 1.开启系统的hyper-v 2. 重启电脑 3.安装docker 下载地址:https://docs.docker.com/docker ...
 - Unity3D实践系列05,为GameObject添加额外属性
			
在Unity中,通常通过脚本为GameObject添加额外的属性.具体有2种方式:一种是通过硬编码为脚本字段赋值,另一种是通过反射在运行时给脚本字段赋值. 脚本通过字段硬编码为GameObject添加 ...
 - 在ASP.NET MVC下实现单个图片上传, 客户端服务端双重限制图片大小和格式, 服务端裁剪图片
			
在"MVC文件图片ajax上传轻量级解决方案,使用客户端JSAjaxFileUploader插件01-单文件上传"一文中,使用JSAjaxFileUploader这款插件实现了单文 ...
 - Delphi 文件遍历
			
unit Unit5; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms ...
 - iOS-Xcode必备插件XAlign:瞬间优化你的代码
			
今天向大家介绍一个非常好用的Xcode代码编辑插件,这个插件可以很快速地使代码对齐,有3种模式:“=”对齐.宏定义对齐和属性对齐 XAlign效果图 1.“=”对齐 2.宏定义对齐 3.属 ...
 - Oracle简易界面工具 (Oracle 10g, Oracle 11g)
			
Oracle简易界面工具 背景:偶在远程机上干活,须要调用到 Oracle 11gserver的数据,远程机上已安装Oracle client, 但 sql plus 和 sql developer ...
 - Robotframework(3):使用pycharm编写和运行RF脚本
			
转自:http://blog.csdn.net/ccggaag/article/details/77529724 我们在使用Robotframework时,经常编写脚本的人或许会不习惯,不过没关系!我 ...
 - TX1 flash backup & restore
			
备份:耗时2.5小时 ./tegraflash.py --bl cboot.bin --applet nvtboot_recovery.bin --chip 0x21 --cmd "read ...