I assume you are talking in specific about ASP.NET MVC. So my answer is mostly geared towards it.
ASP.NET MVC is an implementation of the tried and tested MVC design pattern. MVC has been used in the computer software construction for about more than 2 decades but has come into prominence in the last few years. Especially this approach to software construction was popularised by Ruby on Rails. ASP.NET MVC goes along the same lines but adds its own quirks and advantages.
When applying MVC design pattern emphasis is given to clear separation of concerns. Your View concerns are implemented in the views - via HTML, CSS, javascript, View Helpers and ViewModels. Your data concerns - data that will be used and rendered by the views is implemented in your Model layer. Your Controllers facilitate the interaction between your view layer and your model layer, concerns such as retrieving data, updating data, manipulating data etc.
This design pattern might not be suitable for all types of software construction. However, for almost all types of software that requires interacting with the user, MVC greatly simplifies the construction and maintenance of software.
Using the above pattern ASP.NET MVC greatly simplifies web application development. This is made even better with the usage of conventions such as appending 'Controller' in the name of the controllers, Usage of folders for different concerns, URL routing conventions etc.
One benefit of ASP.NET MVC is that it makes working with pure HTML, CSS and javascript easier. It also does away with Viewstate and any performance limitations associated with it.