i think its good to keep trying different things. one suggestion is to push as much as possible to your models. basically the controller just asks if the form validated or did a result come back from the database search - and then chooses the appropriate view based on what happened. that keeps your controller as 'thin' as possible, and the ever changing granular details like field names are in the models.