asp.net-mvc – MVC – 编辑对象列表
发布时间:2020-12-16 00:11:30 所属栏目:asp.Net 来源:网络整理
导读:我在MVC中有以下类布局: public class ReportModel { ListSomeItem items; string value; string anotherValue;} 现在我在这种类型的MVC中创建一个强类型视图,并使可编辑的文本字段编辑每个值,并使用foreach循环填充文本字段以编辑someitem列表中的项目. 当
我在MVC中有以下类布局:
public class ReportModel { List<SomeItem> items; string value; string anotherValue; } 现在我在这种类型的MVC中创建一个强类型视图,并使可编辑的文本字段编辑每个值,并使用foreach循环填充文本字段以编辑someitem列表中的项目. 当我提交到httppost方法时,单个值在reportmodel对象中返回正常,但列表不会在对象中返回.该怎么做? 当我说httppost时,我指的是MVC发回的方法 [HttpPost] public ActionResult EditReport(ReportModel report) { // Save the report in here after the update on the UI side } 查看发布someitem列表的代码 if (Model.items != null && Model.items.Count > 0) { for (int i = 0; i < Model.items.Count; i++) { <div class="editrow"> <div class="edititem"> <div class="editor-label"> @Html.LabelFor(m => m.items.ElementAt(i).propertyOne) </div> <div class="editor-field"> @Html.TextBoxFor(m => m.items.ElementAt(i).propertyOne) @Html.ValidationMessageFor(m => m.items.ElementAt(i).propertyOne) </div> </div> <div class="edititem"> <div class="editor-label"> @Html.LabelFor(m => m.items.ElementAt(i).propertyTwo) </div> <div class="editor-field"> @Html.TextBoxFor(m => m.items.ElementAt(i).propertyTwo) @Html.ValidationMessageFor(m => m.items.ElementAt(i).propertyTwo) </div> </div> <div class="edititem"> <div class="editor-label"> @Html.LabelFor(m => m.items.ElementAt(i).propertyThree) </div> <div class="editor-field"> @Html.TextBoxFor(m => m.items.ElementAt(i).propertyThree) @Html.ValidationMessageFor(m => m.items.ElementAt(i).propertyThree) </div> </div> </div> } } 解决方法
不要在lambda表达式中使用ElementAt(1)=>这会破坏您输入的字段名称.请阅读Kirill建议你的博客文章.
所以你可以使用索引访问: for (int i = 0; i < Model.items.Count; i++) { <div class="editrow"> <div class="edititem"> <div class="editor-label"> @Html.LabelFor(m => m.items[i].propertyOne) </div> <div class="editor-field"> @Html.TextBoxFor(m => m.items[i].propertyOne) @Html.ValidationMessageFor(m => m.items[i].propertyOne) </div> </div> <div class="edititem"> <div class="editor-label"> @Html.LabelFor(m => m.items[i].propertyTwo) </div> <div class="editor-field"> @Html.TextBoxFor(m => m.items[i].propertyTwo) @Html.ValidationMessageFor(m => m.items[i].propertyTwo) </div> </div> <div class="edititem"> <div class="editor-label"> @Html.LabelFor(m => m.items[i].propertyThree) </div> <div class="editor-field"> @Html.TextBoxFor(m => m.items[i].propertyThree) @Html.ValidationMessageFor(m => m.items[i].propertyThree) </div> </div> </div> } 当然,为了让索引器访问集合,假设您的items属性被声明为List< SomeItem>或SomeItem [].如果是IEnumerable< SomeItem>它不会起作用.因此,只需在视图模型上更改此属性的类型即可. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- ASP.net:单例类,每个请求只实例化一次?
- asp.net-mvc – 如何从umbraco mvc中的表面控制器添加查询字
- 存储过程 – ASP Classic – Recordset对象与命令对象
- asp.net – 使用TextBox的AutoPostback失去焦点
- asp.net-mvc – ASP.NET MVC – ModelState.IsValid是false
- asp.net-mvc – 如何进入MVC4源代码,而无需构建程序集
- asp.net – DropDownList获取底层对象
- asp.net-web-api – 从asp.net web api定制odata输出
- asp.net-mvc – 绑定动作参数以在ASP.NET MVC中请求cookie
- asp.net – 如何在Web应用程序中检测手机
推荐文章
站长推荐
- asp.net – 来自ASHX处理程序的Sever.Transfer,H
- Asp.net Core +MVC+Bootstrap开发项目实站2
- 如何在ASP.NET页面上注册自定义服务器控件
- asp.net – 如何将Enter键与aspx页面上的按钮相关
- aspx.cs页面中的ASP.NET Webmethod无法访问Page.
- .net – 排除某些页面使用HTTPModule
- asp.net-mvc-3 – 在Kendo网格中显示datetime字段
- 如何在ASP.NET gridview的标题中放置一个按钮?
- 如何在asp.net中使用javascript为下拉列表框设置
- 间歇性ASP.Net状态服务错误
热点阅读