What is View Engine in ASP.NET MVC and How It is used?

  • In Asp.net MVC, View engine holds the responsibility of rendering the view to the browser. MVC supports Razor Engine and Web Form by default
  • There are a lot of Third Party View engines available for use, We can go for them as well. Eg: Nhaml, Park, NDjango, SharpDOM etc.,

Lets see the difference between Razor and Web Form View engines.

Razor View Engine vs Web Form View Engine:

Release :

  • Razor Engine was introduced in MVC3
  • Web Form view engine is available since the MVC was introduced with its default View engine

File Extension :

  • Razor Engine has file extensions: 
    • .cshtml for C#
    • .cbhtml for VB, Partial Views, Editor Template and Layout Page.
  • Web Form Engine is set as default View engine in Visual Studio. It has file extensions:
    • .aspx for views
    • .ascx for partial view
    • .master for layouts

Base Class :

  • Namespace for Razor view engine is System.Web.Razor.
  • Namespace for Web Form view engine is System.Web.WebFormViewEngine.

Syntax :

  • In Razor View, we use the @ symbol succeeded by tag. It is not mandatory to explicitly close the code-block
    Eg : @Html.ActionLink(“Click”,”dotnet-Helpers.com”)
  • In Web Form view engine, we use <%: … %>
    Eg : <% :Html.ActionLink(“Click”,”dotnetHelpers”)%>

Comments :

  • Razor uses @* …. *@ for comments.
  • Web Form uses <!–…–> for comments.

Test Driven Development :

  • The Razor Engine supports TDD.
  • Web Form view engine does not support TDD because it depends on the System.Web.UI.Page class

Design Mode :

  • In Razor Engine, it does not support design mode in visual studio.(ie., Preview mode).
  • In Web Form Engine, it support design mode.