我目前正在处理一个大型项目,该项目有一个包含 TimesheetEntries 列表的 Timesheet 类。有一个编辑页面,如下所示:
<!-- Other timesheet properties -->
@Html.EditorFor(model => model.TimesheetEntries)
这很好用,我为每个时间表条目获得一行。当我保存时间表(POST 到服务器)时,自定义模型绑定器会在将时间表传递给控制器之前删除空行,换句话说,时间表可以包含比 POST 数据更少的行。
如果出现验证错误,我会重新显示编辑页面,这就是问题出现的地方。
如果model.TimesheetEntries
包含n
记录从 POST 数据中Html.EditorFor()
复制第一n
行(包括空行),而不是为我传递的数据创建 HTML!这意味着我在表格底部丢失了许多行,这显然是不需要的。
谁能解释为什么会发生这种情况,或者更好地告诉我如何让 EditorFor 按我的预期工作?
这是一张图片来描述这个过程: