В приложении ASP.NET MVC3, если бы я хотел, чтобы модель связывала мои данные публикации формы с ExpandoObject
(или моим собственным объектом, полученным из DynamicObject
, где я реализую свои собственные Try...
члены), мне нужно было бы написать мою собственную модель связующего?
Если я сделаю:
public ActionResult Save(ExpandoObject form)
{
....
}
Значение form
равно null
.
Или, если у меня есть:
public class MyDynamicThing : DynamicObject
{
public int Id { get; set; }
public override bool TrySetMember(SetMemberBinder binder, object value)
{
// Set breakpoint here but doesn't get hit when model binding
return base.TrySetMember(binder, value);
}
}
... и в моем контроллере:
public ActionResult Save(MyDynamicThing form)
{
....
}
В приведенном выше примере Id
устанавливается на значение из формы. Однако, если я установлю точку останова в TrySetMember
, это не будет достигнуто.
Существуют ли магические заклинания, которые я могу вызвать, чтобы заставить встроенный механизм связывания моделей работать с ExpandoObjects
или мои собственные классы, полученные из DynamicObject
?
Я мог бы прибегнуть к сбору необработанных записей, но мне нужно сериализовать эти данные в JSON, что означало бы дополнительный и неопрятный шаг для сбора этих значений.