Razor View Engine
1. Razor Engine is an advanced view engine that was introduced with MVC3. This is not a new language but it is a new markup syntax.
2. The file extensions used with Razor Engine are different from Web Form Engine. It has .cshtml (Razor with C#) or .vbhtml (Razor with VB) extension for views, partial views, editor templates and for layout pages.
3. Razor has new and advance syntax that are compact, expressive and reduces typing.
4. Razor syntax are easy to learn and much clean than Web Form syntax. Razor uses @ symbol to make the code like as:
@Html.ActionLink("SignUp", "SignUp")
5. Razor Engine support TDD (Test Driven Development) since it is not depend on System.Web.UI.Page class.
Web Form View Engine
1. Web Form Engine is the default view engine for the Asp.net MVC that is included with Asp.net MVC from the beginning.
2. The file extensions used with Web Form Engine are also like Asp.net Web Forms. It has .aspx extension for views, .ascx extension for partial views & editor templates and .master extension for layout/master pages.
3. Web Form Engine has the same syntax like Asp.net Web Forms uses for .aspx pages.
4.
Web Form syntax are borrowed from Asp.net Web Forms syntax that are mixed with html and sometimes make a view messy. Webform uses <% and %> delimiters to make the code like as:
<%: Html.ActionLink("SignUp", "SignUp") %>
5. Web Form Engine doesn't support TDD (Test Driven Development) since it depend on System.Web.UI.Page class which makes the testing complex.