This examples shows a fairly typical way to edit a nested data structure. Check the Model source code to see how simple the viewmodel is, and Razor source code to see how straightforward it is to bind the view to it.

The original example: http://knockoutjs.com/examples/contactsEditor.html