Razor is the first major update to render HTML in MVC3. Razor was designed specifically as a
view engine syntax. It has one main focus: code-focused templating for HTML generation.
Here’s how that same markup would be generated using Razor:
@model MvcMusicStore.Models.Genre @{ViewBag.Title = "Browse Albums";} <div class="genre"> <h3><em>@Model.Name</em> Albums</h3> <ul id="album-list"> @foreach (var album in Model.Albums) { <li> <a href="@Url.Action("Details", new { id = album.AlbumId })"> <img alt="@album.Title" src="@album.AlbumArtUrl" /> <span>@album.Title</span> </a> </li> } </ul> </div>
The Razor syntax is easier to type, and easier to read. Razor doesn’t have the XML-like heavy
syntax.