View Engine renders the view into HTML form to the browser. If we talk about a MVC application in the .Net Framework, it supports the following 2 view engines:

  • Razor View Engine
  • Web Form/Aspx View Engine

Differences
Entry with ASP.NET MVC          
Razor View Engine is an advanced view engine and introduced with MVC3. This is not a language but it is a markup syntax.
ASPX View Engine is the default view engine for the ASP.NET MVC that is included with ASP.NET MVC from the beginning.

Namespace

  • Razor View Engine supports System.Web.Razor.
  • ASPX View Engine supports System.Web.Mvc.WebFormViewEngine.

Layout /MasterPage               

  • In Razor View Engine we use Layouts.
  • In ASPX View Engine we use masterPages.

PartialPage /WebUserControl
  • In Razor View Engine we use PartialPage.
  • In ASPX View Engine we use WebUserControls.

Extension
  • Razor View Engine has .cshtml (with C#) and .vbhtml (with VB) extension for views, Layout and Partial views.
  • ASPX View Engine has a similar extension as in a simple web application like .aspx for the views, .acsx for UserControls and .master for Master Pages.

Performance
  • Razor Engine is a little slow compared to Aspx Engine.
  • Aspx Engine is faster compared to Razor Engine.
Syntax
  • ‘@’ symbol uses in Razor Engine to write the code. @Html.ActionLink("Login", "LoginView")
  • ‘<%:’ delimiters use as starting point and ‘ %>’ use as ending point. You can write the code between them in ASPX Engine.
  • <%: Html.ActionLink("Login ", " LoginView ") %> 

Cross-Site Scripting Attacks
  • Razor Engine prevents Cross-Site Scripting Attacks, in other words it encodes the script or HTML tags like <,> before rendering to view.
  • ASPX Engine does not prevent Cross-Site Scripting Attacks, in other words any script saved in the database will be fired while rendering the page.