Reuse is truly a central part of the MVC concept. Very often, MVC production sites have a separate assembly (or assemblies) for the model. This is somewhat less common (but still done) in order to do the same for controllers. The S # arcade architecture project (for example) uses a separate assembly for everything, leaving only the views, content and global.asax in the web assembly. All is well.
Another thing you can consider is using areas that are similar to mini-MVC applications that you can use in your “main” application. This is a great way to pack reusable items as you describe.
Floor
source share