Недавно я обнаружил, что, если я сказал:Модель Binding - Runtime Type
object latestPosts = new MyApp.Models.LatestPosts();
TryUpdateModel(latestPosts);
The latestPosts объект не обновляется. Это связано с проблемой, найденной here. Использование обходного решения решило проблему. Однако, если я переношу lastPosts как свойство (называемое параметрами) существующего типа (например, Widget), он не обновляет модель. Например.
var widget = new Widget();
MyTryUpdateModel(widget, "Widget", null, null, ValueProvider); // LatestPosts doesn't update
Но на следующий же работа:
MyTryUpdateModel(widget.Parameters, "Widget.Parameters", null, null, ValueProvider);
Edit: Вот класс Widget:
public class Widget {
[Required, StringLength(100)]
public virtual string Name { get; set; }
private object _parameters;
public virtual object Parameters {
get {
// Code removed for brevity
if (_parameters == null)
_parameters = new MyApp.Models.LatestPosts();
return _parameters;
} set { _parameters = value; }
}
}
А вот класс LatestPosts:
public class LatestPosts {
public int NumPosts { get; set; }
}
Я могу» не вижу, почему первоначальный MyTryUpdateModel не работал для обновления всего виджета, поскольку он должен обрабатывать сложные типы. Я был бы признателен, если бы кто-то мог пролить свет на этот вопрос.
Благодаря
Я не могу воспроизвести проблему. Оба работают для меня. Не могли бы вы представить полный пример, позволяющий воспроизвести проблему, включая то, как выглядят ваши классы моделей и что именно отправляется как значения в запросе? –
Привет, Дарин, я, надеюсь, отредактировал вопрос с информацией, которую вам нужно помочь. Спасибо – nfplee
не использовать TryUpdateModel/UpdateModel – Omu