When we want to develop an application that should be lightweight and easy for testing and Maintenance and more Loose Coupling, we can develop an MVC application.
In asp.net Webforms, we have various server controls that generate a large view state to maintain the state, making the page heavy. Suppose a person having low bandwidth cannot access this Heavy page. At that time, we can use Asp.net MVC where we have control over Generating HTML. Using some Functionality of MVC such as bundling and minification can increase the application's performance.
While developing an application in Asp.Net MVC, we have long term benefits:
Development: The MVC components such as (Model, View, Controller) can be developed in isolation. Because they are not directly depended on each other
Testing: The MVC components do not directly depend on each other and made it easy to test components separately.
Maintenance: All components logic is separated; it makes it easy for Maintenance in the future.
Control over HTML: You want full control over the HTML that is rendered in the browser, and you can afford the development time and overhead to do all of your own markups.