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.