Как правильно использовать (попробовать) UpdateModel?
Когда я запускаю это:
TryUpdateModel
возвращает true,
ViewData
не имеет ошибок,
- но мой
Proxy
не обновляется.
Метод действия
public void Save(string TypeName, int Id, FormCollection idontknow) {
var types = Assembly.GetExecutingAssembly().GetTypes();
var ObjectType=(from t in types where t.Name == TypeName select t).First();
var Proxy = context.Set(ObjectType).Find(Id); // EF 4.1
if (TryUpdateModel(Proxy, TypeName)) {
var x = ViewData.GetModelStateErrors(); // no errors
}
}
Опубликованные данные
TypeName=Thing&Id=1&Thing.Id=1&Thing.Name=hello&Thing.OptionID=2
класс вещей
public class Thing : Base {
public virtual Nullable<int> OptionID { get; set; }
public virtual Option Option { get; set; }
public virtual ICollection<ListItem> ListItems { get; set; }
}
public class Base {
public virtual int Id { get; set; }
public virtual string Name { get; set; }
[NotMapped]
public virtual int? EntityState { get; set; }
}
РЕДАКТИРОВАТЬ: Я также пытался явно передать коллекцию форм
TryUpdateModel(Proxy, TypeName, idontknow)
РЕДАКТИРОВАТЬ # 2: (в ответ на NickLarsen)
- Перезапущен VS и сервер, без изменений.
- Значения фактически находятся в FormCollection.
- Поддельные данные работают! Я знаю, что, должно быть, здесь что-то напортачили
- Использование отладчика для проверки значений.