MVC3 UpdateModel — установка свойства Id поддерживается только в .NET 3.5.

Получение ошибки, пойманной в UpdateModel

«Установка свойства Id поддерживается только в .NET 3.5+ во время десериализации объекта» 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 выдает InvalidOperationException в UpdateModel() , пытаясь обновить поле идентификатора

но я использую объект вместо FormCollection. ORM, который я использую, это LightSpeed.


person Dave Mateer    schedule 26.10.2011    source источник


Ответы (1)


Выглядит хорошо до сих пор с включением исключения..

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

Оказывается, это не проблема MVC, поскольку у меня была такая же проблема с использованием AutoMapper в другом месте приложения, и мне также пришлось исключить идентификатор там.

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

Не уверен, что изменилось с тех пор, как это сработало. Возможное обновление с LightSpeed3 до 4. И я использую .NET4 framework.

person Dave Mateer    schedule 27.10.2011