ASP.NET Model View Controller (MVC)

The Model-View-Controller (MVC) pattern is an architectural design principle that separates the components of a Web application. This separation gives you more control over the individual parts of the application, which lets you more easily develop, modify, and test them.

ASP.NET MVC is part of the ASP.NET framework. Developing an ASP.NET MVC application is an alternative to developing ASP.NET Web Forms pages; it does not replace Web Forms.

You can download and install the ASP.NET MVC framework in the following ways:

  • Install the framework using the Microsoft Web Platform Installer. You can download the installer from the installation page on the Microsoft Web gallery site.

  • Download the framework from the ASP.NET MVC 1.0 page on the Microsoft Download Center.

Roadmap to ASP.NET MVC

We suggest the following progression of documentation to help you learn about ASP.NET MVC.

Scenario

Topics

Getting started with ASP.NET MVC

ASP.NET MVC Overview

Walkthrough: Creating a Basic MVC Project with Unit Tests in Visual Studio

Creating a Tasklist Application with ASP.NET MVC (video on the ASP.NET Web site)

Familiarizing yourself with ASP.NET MVC classes

System.Web.Mvc namespace

System.Web.Mvc.Ajax namespace

System.Web.Mvc.Html namespace

Understanding models, views, and controllers

Controllers and Action Methods in MVC Applications

Views and UI Rendering in MVC Applications

Models and Model Binders in MVC Applications

Understanding Models, Views, and Controllers (video on the ASP.NET Web site)

Episode 1 with Paul Litwin - Creating a Data Driven MVC Application (video on the ASP.NET Web site)

Episode 2 with Paul Litwin - Creating the Controller and View (video on the ASP.NET Web site)

Understanding ASP.NET MVC project structure

MVC Framework and Application Structure

Understanding the MVC Application Execution Process

Understanding URL routing in ASP.NET MVC

ASP.NET Routing

Working with controllers

How to: Add a Controller to an MVC Application in Visual Studio

How to: Add an Action Method to an MVC Controller in Visual Studio

System.Web.Mvc.Controller class

Working with views

How to: Add a View to an MVC Application in Visual Studio

Rendering a Form in ASP.NET MVC Using HTML Helpers

Passing Data in an ASP.NET MVC Application

Creating Custom HTML Helpers (tutorial on the ASP.NET Web site)

Creating Page Layouts with View Master Pages (video on the ASP.NET Web site)

Working with models

Validating Model Data in an MVC Application

Creating Model Classes with LINQ to SQL (tutorial on the ASP.NET Web site)

Displaying a Table of Database Data (tutorial on the ASP.NET Web site)

Creating Model Classes with the Entity Framework (tutorial on the ASP.NET Web site)

Using AJAX in ASP.NET MVC applications

Walkthrough: Adding ASP.NET AJAX Scripting to an MVC Project

Filtering action methods

Action Filtering in MVC Applications

Creating Custom Action Filters

How to: Create a Custom Action Filter

Handling errors in MVC applications

Implementing an Error-Handling Filter

Securing MVC applications

Restricting Access to an Action Method

Preventing JavaScript Injection Attacks (tutorial on the ASP.NET Web site)

Authenticating Users with Forms Authentication (tutorial on the ASP.NET Web site)

Authenticating Users with Windows Authentication (tutorial on the ASP.NET Web site)

Improving ASP.NET MVC application performance

Output Caching in an Action Method

Adding Dynamic Content to a Cached Page (tutorial on the ASP.NET Web site)

Testing MVC applications

How to: Add a Custom MVC Test Framework in Visual Studio

Walkthrough: Creating a Basic MVC Project with Unit Tests in Visual Studio

Creating Unit Tests for ASP.NET MVC Applications (tutorial on the ASP.NET Web site)

Deploying MVC applications

How to: Deploy an ASP.NET MVC Application

Using ASP.NET MVC with Different Versions of IIS (tutorial on the ASP.NET Web site)

Learning more about ASP.NET MVC from blog entries written by ASP.NET MVC experts

ASP.NET MVC Framework Road-Map Update (Scott Guthrie)

ASP.NET MVC Design Gallery and Upcoming View Improvements with the ASP.NET MVC Release Candidate (Scott Guthrie)

ASP.NET MVC Release Candidate 2 (Phil Haack)

Take Charge of Your Security (Phil Haack)

ASP.NET Wire Format for Model Binding to Arrays, Lists, Collections, Dictionaries (Scott Hanselman)

Building Web Apps without Web Forms (Chris Tavares)