There is major difference is on implementation mechanism between ASP.NET MVC 3 and ASP.NET MVC 4.
In ASP.NET MVC 3, to implement async controller or methods we need to derive controller from AsyncController rather than from normal plain Controller class. We need to create 2 action methods rather than one. First with suffix ’Async’ keyword & second with ‘Completed’ suffix.
In ASP.NET MVC 4 you need not to declare 2 action method. One can serve the purpouse. MVC 4 using .Net Framework 4.5 support for asynchronous communication.