有时操作列表的时候想一次提交一个model集合,这样后台controller直接接受后就可以直接进行操作了,不用使用js,比较方便,也体现了MVC的Binding模式的优势,方法如下:
准备:
1.两个controller,一个view,一个model
开始
1.首先在第一个controller中返回的是一个list类型的model
2.在view中循环的时候注意:只能使用for循环(HiddenFor和DisplayFor的用法也是技巧)
注意在引用model的时候,需要使用List<>这种方式引用
3.表单提交到后台另一个controller的时候,就可以定义一个list model来接受了
然后就可以操作对象集合来获取里面了值了,这个方法比用js插件简单方便一些,目前还不清楚和js那些请打的表格处理插件有什么区别,搞了后再补充在这里-------------
过程中遇到的问题:
1.listmode返回null
搞了将近一天终于发现错误了,而且网上没有答案,之所以这个listmode返回NULL,是因为
在view中根本就没有编辑,所以razor认为是没有改变的,故不需要返回listmodel,所以需要使用可以更改的listmodel来更改页面才行
问题原因:
原来List<model>是可以将前端的值传回到后端的Controller里面的,但是不能使用Html.displayerFor函数,因为这个函数不会生成name 和id,可以用hiddeFor或者EditFor或者其他的类型
所以使用table的时候,应该使用DisplayFor和HiddenFor来显示和返回列表