1. Separation of application tasks -Easy to Manage - Manage complexity by dividing an application into the model, the view, and the controller

  1. Full control over the behavior of an application - as it doesn't use view state or server-based forms which will give full control to developer.

  1. Better support for test-driven development (TDD)- Easy to Test

  2. Best suited for large team

  3. An extensible and pluggable framework- You can plug in your own view engine, URL routing policy, action-method parameter serialization, and other components. The ASP.NET MVC framework also supports the use of Dependency Injection (DI) and Inversion of Control (IOC) container models.  DI allows you to inject objects into a class, instead of relying on the class to create the object itself. IOC specifies that if an object requires another object, the first objects should get the second object from an outside source such as a configuration file.

  1. Powerful URL-mapping component- URL's are comprehensible and searchable URLs.

  1. Support for existing markup - ASP.NET page (.aspx files), user control (.ascx files), and master page (.master files)

  1. Support for existing ASP.NET features- nested master pages, in-line expressions (<%= %>), declarative server controls, templates, data-binding, localization, 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.