0

在 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 在 UpdateModel() 中抛出 InvalidOperationException,试图更新 id 字段

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

4

1 回答 1

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 框架。

于 2011-10-27T01:45:36.013 回答