Chapter 4. Razor and ASP.NET MVC

First introduced in early 2008, ASP.NET MVC provided an alternative approach to developing web applications on the ASP.NET platform. As the name indicates, ASP.NET MVC embraces the Model-View-Controller (MVC) architecture, an approach favoring the separation of concerns between application layers. ASP.NET MVC views are much more HTML-focused than views in other frameworks such as Web Forms. Razor complements ASP.NET MVC quite nicely because its simplistic and elegant syntax produces a seamless transition between markup and code, allowing the markup to remain the main focus and not fade into a sea of code-specific syntax.

This chapter will provide a brief introduction to the ASP.NET MVC framework as well as demonstrate how to leverage the Razor syntax to create clean and effective ASP.NET MVC views.

Installing ASP.NET MVC

To begin developing ASP.NET MVC websites using Razor, you’ll need to have at least ASP.NET MVC version 3. The Web Platform Installer is the easiest way to install ASP.NET MVC 3.

To begin installation using the Web Platform Installer, visit the ASP.NET MVC website and find the big button that says “Install Visual Studio Express” (or something similar).

Regardless of what you have installed on your system prior to running the Web Platform installer, clicking Install will download and install everything you need to start developing ASP.NET MVC 3 applications using Razor.

The Model-View-Controller Architecture

The MVC architecture comprises three layers, each with unique and independent responsibilities:

Model

Represents the core business/domain data and logic, typically with POCOs (Plain Old CLR Objects), devoid of technology-specific implementations

View

Responsible for transforming a Model or Models into a response sent to the user (typically HTML)

Controller

Interprets incoming web requests, managing the interaction between the user and the model (typically through database queries, web services calls, etc.) and building a Model for the View to consume

In the course of an ASP.NET MVC website request, the platform locates and executes the corresponding controller method, also called the action. The result of this action is almost always an ActionResult. The most widely used type is the ViewResult—an ActionResult indicating which view the framework should respond to the request with. Following ASP.NET MVC’s strict separation of concerns, it is not the controller that is responsible for rendering HTML. Instead, the ASP.NET MVC framework passes the ActionResult from the controller to the View Engine, which handles the conversion of a ViewResult into rendered HTML to send back to the client.

Get Programming Razor now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.