Может ли кто-нибудь помочь мне лучше понять DefaultModelBinder и как он обрабатывает привязку модели, которая имеет свойство типа object?
Я скачал код и попытался отследить его, но все еще чешу головунемного.
Допустим, у меня есть такая модель:
public class MyModel{
public object MyProperty{ get; set; }
}
И предположим, что все мои формы сгенерированы правильно (например: name = "MyModel.MyProperty")
Что происходит для различных случаев, когда MyProperty фактически установлен на экземпляры определенных типов?
В моем случае я извлекаю пользовательский связыватель из DefaultModelBinder и переопределяю CreateModel (), чтобы вернуть MyModel с установленным MyPropertyправильный тип.
Я заметил, что если я установил MyProperty в строку, то по какой-то причине DefaultModelBinder :: BindProperty () возвращает строку [] размера 1 с содержимым поля формы, а не простострока.Почему?
Если MyProperty является более сложным типом, хотя все поля формы имеют правильные имена (например, name = "MyModel.MyProperty.FirstName"), связывание, похоже, не работает вообще.
Кто-нибудь имел дело со сложным / абстрактным сценарием связывания модели, подобным этому, раньше?Есть ли способ лучше?(Я знаю, что это странно, но мне действительно нужно, чтобы MyProperty объекта MyModel был объектом, потому что я не могу знать, какой это тип Type, до времени выполнения)