You are asking for the “right” way, but this is an engineering problem, not a mathematical problem. There are trade-offs, some form of taste comes into play, and it is unlikely that there is a uniform solution perfect.
In addition, only because asp.net does something in a certain way, does this mean that all OO structures have made the same design decisions. Check out Ruby on Rails or Smalltalk Seaside for a different but still OO approach. Even ASP.net MVC, for example, takes a slightly different approach than vanilla ASP.net.
FP- , , - , , OO-. , ( ), Links ( - LINQ) LiveLab - .
, , ...