We can have different views for one controller like which is not possible in ASP.NET classic where the code behind file contains a single source file for representation.And MVC main drawback is every control doesn't have its server side events as in classic .net.
It is used for separation of concerns by means of Model View Controller architecture using loose coupling among them so that each of these items can be tested independently. It supports the test driven development
MVC based on loosely coupled architecture and principles like separation of concerns, Using MVC you can perform testing of individual part while other can still develop. No sticky code behind...