Html.Editor失去数据

时间:2013-01-25 12:51:04

标签: c# asp.net-mvc-3

我目前正在开发一个大型项目,其中包含一个包含TimesheetEntries列表的Timesheet类。有一个编辑页面,如下所示:

<!-- Other timesheet properties -->
@Html.EditorFor(model => model.TimesheetEntries)

这很好用,每个时间表条目都有一行。当我将时间表(POST到服务器)保存时,自定义模型绑定器会在将时间表传递给控制器​​之前删除空行,换句话说,时间表可以包含比POST数据更少的行。

如果存在验证错误,我会重新显示编辑页面,这就是出现问题的地方。

如果model.TimesheetEntries包含n条记录Html.EditorFor(),则会从POST数据(包括空行)中重现第一行n行,而不是为我传递的数据创建HTML !这意味着我在桌子底部丢失了许多行,这显然是不需要的。

任何人都可以解释为什么会发生这种情况,或者更好地告诉我如何让EditorFor像我期望的那样工作?

以下是描述该过程的图片:

TimesheetProcess

2 个答案:

答案 0 :(得分:0)

您可能需要查看此帖中提供的答案Asp:net MVC 3: @Html.EditorFor a subcollection of my model in a template?这可能有所帮助。

答案 1 :(得分:0)

在使用传递给它的值之前,Html.EditorFor在ModelState中查找...为了让它获取我传递给它的值,我需要先从ModelState中清除相关的值,唉。

This问题/答案会更详细地介绍它。