Both ASP.NET webforms and MVC are microsoft technologies available for building dynamic web pages. The following are the reasons why one should you prefer one technology over the other.Why MVC ? 1) Lightweight and fast : The ASP.NET is the event driven approach that strongly binds your UI with the server side event handelling. Whereas in case of MVC, the UI and the server side logic are decoupled and makes them independent entities. Also, MVC got rid of one of the state management techniques called viewstate, that makes the asp .net pages bulky and takes time to load the controls. 2) Highly customisable due to rich support of HTML, CSS, Javascript, AJAX and JQuery : If you look at your design files of MVC, they are plain HTML controls with very server side HTML helpers that will again present the web pages with clean DOM unlike ASP.NET webforms that generate complex html tags while presenting the webpages to the user. 3) Highly modular with clean url support: Clean URL is something very native to MVC pattern, because the route engine process the URLs directly in case of mvc (default format is domain_name/controller_name/action_name/additional_parameters) whereas in webforms the request will try to look for the equivalent aspx page and the url will look too long and unorganized in most of the cases. 4) SEO: As I told you before the mvc webpages will present a very meaningful webpage with clean url that make sense not only to the users but also for the search engines to index your websites. So obviously your websites will be prefered by google or other search engines whenever some one looks for information relevant to your business, that will result in more hits and more business.Why ASP.NET (Webforms)? 1) Legacy : Being a pioneer technology, we have a lot of applications built in ASP.NET already and it is practically difficult to invest a lot of money for rewriting those applications in mvc. So the enhancements to the existing system will preferably be written in the same software stack, instead writing them on something new. 2) Availability of skill pool: We have a huge skill pool of ASP.NET developers as it is there for quiet a long time and MVC is comparitively very young technology. So if your project has minimal time to train the resources, going with a familiar software stack is preferable. 3) Not so many dependent technical skills: If you say that you are good in MVC, you are expected to be equally good in HTML5,javascript,JQuery and CSS along with C#. 4) Continuous support from microsoft: Microsoft is providing dedicated support for ASP.NET and continuously investing in R&D to make it better. One of the few significant steps of it is vNext that is aimed at making it lightweight.
ASP.NET webform is EventDriven architecture while ASP>NET MVC EventLess architecture