隐藏

asp.net core post 传递数组、集合绑定参数或IEnumrable或List对象列表

发布:2023/12/7 15:28:38作者:大数据 来源:大数据 浏览次数:451

可以分两种办法处理controller中传递对象数组或对象集合的情况,

第一种办法如下:

将对象数组在view中拆分成以下形式,注意数组标识从0开始,中间截断,比如0,1,2,4,5,则4,5后面的数组不会获得,必须连续,且从0开始。name中参数不区分大小写。

 

前端

后台controller action

二、传递对象列表list

利用【 @Html.TextBoxFor() 】来进行渲染,此时是个集合,则只能用for循环来进行遍历,否则获取不到对象,于是乎将数据渲染时修改成下面的这个样子。可以看到对于集合数据的绑定,MVC中有自己的定义规则,所有的表单项都是[number].Field的形式。

Asp.net MVC中的Model自动绑定功能,方便了我们对于request中的数据的处理, 从客户端的请求数据,自动地以Action方法参数的形式呈现。有时候我们的Action方法中想要接收数组类型的参数,如何写表单,使得Model能够自动绑定到数组参数上呢?

看下面的代码,Action方法UpdateStudents就需要IEnumerable<Student>类型的参数,用来批量更新Student数据。

上面是一个非常典型的应用场景, 如何为表单中的field命名,能够使得提交表单的时候,model bind能够自动创建好IEnumerable<Student>类型的students呢?

下面就是在批量更新场景下的表单View代码

view生成的表单如下:

第二办法将集合对象在view中序列化成json字符串,然后在controller中将字符串反序列化成对应的对象集合

可以使用js或jquery将input里的value设置成json字符串

 

 

C#将list或数组转字符串,list转字符串,list转化为字符串

String.Join(",",list)

声明:本站内容来源于原创和互联网,尊重作者版权,转载请注明来源网址,欢迎收藏,谢谢!