ASP.NET
MVC provides an alternative approach to traditional ASP.NET web development
often referred to as web forms by applying an architectural approach. The MVC
or Model-View-Controller pattern splits an application into three separate and
distinct layers, the Model layer, the View layer and the Controller layer, each
with a very specific set of responsibilities
MVC
Design Pattern

Model
The
Model layer contains all of the application's business logic, the code that
describes how your business works. Often, Model objects retrieve and store
model state in a database.
View
The
View layer is the responsible for interacting with the user, visualizing the
model, and communicating with the controller on the user's behalf. ASP.NET MVC
Views will consist of standard HTML pages that include JavaScript behavior and
CSS styling. The View layer is not limited to HTML, however, and can render
plenty of other things such as JSON, XML, or even custom return types. It's the
View layer's job to render anything that your application needs in order to
create an immersive user experience.
Controller
This
Controller Layer is the responsible for controlling the application flow and
interaction between the Model and the View. Controllers are the brains of an
ASP.NET MVC application, requesting data from the Model layer and choosing the
correct method of getting that data to the user. Note that the Controller does
not perform any of this work directly, its real job is to delegate as much as
possible to the model and view layers so that they can do the real work.
Reference
http://msdn.microsoft.com/en-us/library/dd381412%28v=vs.108%29.aspx