MVC二维数组传值与值获取
MVC二维数组传值与值获取
开发工具与关键技术:MVC/C#
作者:刘剑波
撰写时间:2019年1月26日
这里要讲的是MVC的视图层传数据到控制层的一种方法。这种方法可以把多条数据按顺序传到控制层从而避免了数据传输时产生的紊乱情况。这种方法用上了二维数组,可以把一个表格的数据有序的传送到控制层。
首先我们要定义一个数组shuizu,确定数组的长度QSQS(这个数组的长度与你要传的总数据条数一致)。接着再定义一个参数j为0(这个参数与数组的顺序有关)。然后用for循环给数组赋值,原理就是数组里面装着数组所以我们要先给里面的数组赋值,再把这个赋了值的数组赋值给外面那个数组。上图中的QIS、DAY、BEN、LIS就是要赋给里面数组的值,获取了这些值之后就要定义一个数组shuizu[j]装这四个值,j在上面已经赋过值为0,也就是说第一个数组为shuizu[0],由于数组起始的***为0所以赋值时以shuizu[j][0]开始,里面的数组赋完值之后要让j自增从而使得传输的数据有序。
赋完值之后就是传数据了,这里我用的是post提交。
数据传到控制层之后就用数组类型Array接收数据,接着将数组shuizu转化成一个string类型的字符串z,再用Split方法通过逗号(,)切割字符串z赋值给Shuizu,这时候Shuizu的值长度为QSQS*4。这里要定义一个数组ss长度为4(这个值是数组单条数据里面的内容数)和定义一个参数aa值为Shuizu.Length/4(这个值是数组单条数据里面的内容数),也就是QSQS的值,还有一个参数bb赋值为0(这个数跟后面的获取值有关)。然后就是利用for循环获取值了。这里用到个方法Array.ConstrainedCopy
第一个参数是源数组Shuizu,第二个参数是索引的起始bb(索引从0开始,在上面就已经定义了bb=0),第三个参数是接收值ss(获取的值就会保存在这里),第四个参数是0(获取值之后赋值给ss时的起始索引,也就是保存到ss时从哪个位置开始赋值给ss),第五个参数是4(这个值是数组单条数据里面的内容数,上面用到的QIS、DAY、BEN、LIS四个,所以这里是4),这里结束之后需要的值已经赋值到了ss,最后要让bb增4(这个值是数组单条数据里面的内容数)从而不影响下个数据ss的值获取。