【问题标题】:MVC update multiple records from postMVC 从帖子更新多条记录
【发布时间】: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" />

【问题讨论】:

标签: c# asp.net-mvc entity-framework asp.net-mvc-5


【解决方案1】:

问题不在于你的行为,可能在于你的观点。正如您所说,您发布的数据如下:

AttendeeId[0]=79 
ArrivedAttendees[0]=3
AttendeeId[1]=80
ArrivedAttendees[1]=5

为了让 MVC 框架能够正确绑定你的模型,发布的数据应该如下:

[0].AttendeeId=79 
[0].ArrivedAttendees=3
[1].AttendeeId=80
[1].ArrivedAttendees=5

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-02-18
    • 2016-05-01
    • 2013-05-02
    • 2014-03-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多