DefaultModelBinder
работает по соглашению, поэтому для его работы поля формы должны соответствовать соглашению об именах MVC.
Если вы не хотите использовать EditorForModel
для создания формы, вам придется реализовать собственное соглашение об именах для каждого поля и установить ViewData.TemplateInfo.HtmlFieldPrefix
для каждого элемента. Затем вам нужно будет создать собственный ModelBinder, чтобы взять возвращенную форму и привязать к своим моделям в соответствии с соглашением об именах.
Имейте в виду, что это создает некоторые другие проблемы в MVC3, наиболее важная из которых заключается в том, что визуализация ненавязчивой проверки для DropDownLists и некоторых других элементов может завершиться неудачей.
В общем случае лучше всего использовать EditorForModel по вашему мнению и работать с использованием существующих соглашений MVC. Вы можете создать представление, специфичное для каждой вложенной модели. Брэд Уилсон дает хороший обзор процесса в этой статье .