Use the DebuggableModelBinder
with a breakpoint to investigate what's happening when your complex model isn't binding as you expect.
Use the CheckBoxToBoolModelBinder
to bind <input type="checkbox" >
Note the Html standard describes "on" as the only valid postable value for a checkbox.. If you're posting something else, change the code. And don't that forget that unchecked means that nothing gets posted.
In either case, wire them up with e.g.:
public class MvcApplication : HttpApplication
{
protected void Application_Start()