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(), пытаясь обновить поле id

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

1 ответ

Решение

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

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 Framework.

Другие вопросы по тегам