【发布时间】:2016-09-18 20:20:06
【问题描述】:
我正在尝试一次更新多条记录,但我的模型始终为空。
这适用于更新单个记录。 Post=AttendeeId=79&ArrivedAttendee=3
public async Task<ActionResult> UpdateArrivalNumbers(ArrivedAttendeesVM vm)
{
var query = db.HorseRidingBookingAttendees.Find(vm.AttendeeId);
query.ArrivedAttendees = vm.ArrivedAttendees;
db.Entry(query).State = EntityState.Modified;
await db.SaveChangesAsync();
return Json(new { success = true }, JsonRequestBehavior.AllowGet);
}
我需要执行类似的操作来更新多条记录,但模型始终为空。 Post=AttendeeId[0]=79&ArrivedAttendees[0]=3&AttendeeId[1]=80&ArrivedAttendees[1]=5
public async Task<ActionResult> UpdateArrivalNumbers(List<ArrivedAttendeesVM> vm)
{
foreach (var item in vm)
{
var query = db.HorseRidingBookingAttendees.Find(item.AttendeeId);
query.ArrivedAttendees = item.ArrivedAttendees;
db.Entry(query).State = EntityState.Modified;
}
await db.SaveChangesAsync();
return Json(new { success = true }, JsonRequestBehavior.AllowGet);
}
更新 - 已修复:
对于遇到同样问题的其他人,我的表单字段如下:
<input type="hidden" name="AttendeeId[@i]" id="AttendeeId[@i]" value="@item.AttendeeId" />
但要让它正常工作,我必须将我的表单字段更新为:
<input type="hidden" name="[@i].AttendeeId" id="[@i].AttendeeId" value="@item.AttendeeId" />
【问题讨论】:
-
并添加您的表单代码
-
谢谢 DespeiL - 我从你链接到的文章中学到了更多:)
-
使用
for循环或EditorTemplate并使用强类型HtmlHelper方法生成正确的视图,以便您的name属性始终正确(参考HTML Table to ADO.NET DataTable)
标签: c# asp.net-mvc entity-framework asp.net-mvc-5