MVC3 UpdateModel - 仅.NET 3.5支持设置Id属性

时间:2011-10-26 23:35:35

标签: asp.net-mvc-3 lightspeed

获取UpdateModel中的错误

“在实体反序列化期间仅支持.NET 3.5+设置Id属性”System.Exception {System.NotSupportedException}

public ActionResult Edit1(Guid id, ActivityResponseConsumerMobile arcm) {
        if (!ModelState.IsValid) {
            SetupDropDowns();
            return View(arcm);
        }

        ActivityResponseConsumerMobile arcmDb = uow.ActivityResponseConsumerMobiles.Single(a => a.Id == id);
        try {
            UpdateModel(arcmDb);
        }
        catch {
            var x = ModelState;
            return View(arcm);
        }

感觉像SO问题:MVC2 throws InvalidOperationException in UpdateModel(), trying to update the id field

但我正在使用该对象而不是FormCollection。我正在使用的ORM是LightSpeed。

1 个答案:

答案 0 :(得分:0)

到目前为止看起来很好并且排除了..

UpdateModel(arcmDb, null, null, new[] {"Id"});

事实证明这不是MVC问题,因为我在应用程序的其他地方使用AutoMapper时遇到了同样的问题,并且也必须在那里排除ID。

   Mapper.CreateMap<ActivityPushConsumerMobile, ActivityPushConsumerMobile>()
                              .ForMember(dest => dest.EntityState, opt => opt.Ignore())
                              .ForMember(x => x.Id, y => y.Ignore())

不确定自工作以来发生了什么变化。可能从LightSpeed3升级到4.我正在使用.NET4框架。