I think a good way to manage the forms from the controller methods could be using two forms as parameters to the method:
one being the outgoing form, with the fields (and backing lists) the
next form to show to the user will have;
another being an input form, with the fields defined by the method
parameters, holding the data 'posted' by the last user action.