I am trying to work out if there is built-in support for binding complex types to form elements.
To use a common hypothetical situation: I have a Product entity that
The closest I think that it will come is overriding the ToString()
method in the class to output meaningful information to the DropDownList - but not much else.
You may be able to bind the IEnumerable collection to a DropDownList and then retrieving its SelectedItem when the form is submitted - that is the cheapest way I can think of.
Please check this, as I think that talks about your question, it seems that the S#arp guys have solved it and it's easily "rip"'able if you don't use their stuff.
Anyway I think it's somewhat dangerous to automatically load entities from whatever the user posts... will have to think about it.
I haven't yet tried the DefaultModelBinder for complex types, but you could always use MvcContrib's CastleBind (borrowed from the Castle Project) which gives you complex type binding easily, including arrays.
See http://blogger.forgottenskies.com/?p=258