Web application framework developed by Microsoft
MVC is highly preferable by the clients as it is light weight because of Razor engine for rendering html data at client side along with that it is easier to manage complexity by dividing an application into three parts i.e. Model, View, the Controller. It also carries features like routing, extensibility and features of ASP.NET which makes it better in all aspects.
Separation of Code logic
Separation of application tasks like: input logic, business logic, and UI logic, testability, and test-driven development (TDD). All core contracts in the MVC framework are basically interface-based and it can be tested using mock objects, which are simulated objects that replicate the behavior of actual objects in the application. Developers can unit-test the application without having to run the controllers in an ASP.NET process, which adds benefits like unit testing fast and flexible. Any unit-testing framework that is compatible with the .NET Framework can also be used.
Extensible and pluggable framework
The components of the ASP.NET MVC framework are designed in a manner so that they can be easily replaced or personalized. User can plug in their own view engine, URL routing policy, action-method parameter serialization, and other factors. The ASP.NET MVC framework also supports the use of Dependency Injection (DI) and Inversion of Control (IOC) container models. DI enables to inject objects into a class, in reverse of relying on the class to create the object itself. IOC determines that if an object feels necessity for another object, the first objects should get the second object from an outside source such as a configuration file. This process makes testing easier.
Extensive support for Routing
Routing is a robust URL-mapping component that lets developer build applications that have comprehensible and searchable URLs. URLs do not have to include file-name extensions, and are designed to support URL naming patterns that work well for Digital Marketing (SEO) and representational state transfer (REST) addressing.
Support for existing ASP.NET features
ASP.NET MVC lets users use features acting as forms authentication and Windows authentication, URL authorization, membership and roles, output and data caching, session and profile state management, health monitoring, the configuration system, and the provider architecture.