I've recently started a new job where I've been thrown into a bug fixing role on an under development ASP.Net MVC application. I'm a big fan of using an MVC approach for web apps and built some hefty production apps on Maverick.Net starting back in 2004/2005 however this is my first time using the ASP.Net MVC framework for anything other than mucking around.
One thing I'm finding myself doing a lot with the bug fixing is chasing through chains of controllers following the html.renderaction calls. In the past when I've written MVC apps a single controller would be responsible for producing the model in it's entirety. If there were common sections or functions for each controller they'd be sub-classed, moved into the data access layer. It seems to me that in this case, and I suspect others, that having html.renderaction is going to encourage some seriously spaghettified code and really defeats the purpose of having the distinct C-M-V stages since it now becomse C-M-V-C-M-V-C-M-V etc.
Is html.renderaction really the best way to encourage clean code, it seems a bit smelly to me?