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.