ASP.NET Model View Controller (MVC)

[Note: This topic is pre-release documentation and is subject to change in future releases. Blank topics are included as placeholders.]

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 the Web Forms model.

You can also download and install the ASP.NET MVC 2 Preview 2 framework from the ASP.NET MVC 2 Beta page on the Microsoft Download Center.

NoteNote

An earlier version of the MVC Framework (ASP.NET MVC 1.0) is also available. If you are working with an application that is specifically written to work with that version of the MVC framework, you can download ASP.NET MVC 1.0 from the ASP.NET MVC 1.0 page on the Microsoft Download Center.

Content Map for 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

Using an Asynchronous Controller in ASP.NET MVC

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

Walkthrough: Organizing an ASP.NET MVC Application using Functional Areas

Understanding URL routing in ASP.NET MVC

ASP.NET Routing

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

Walkthrough: Using Templated Helpers to Display Data

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

How to: Validate Model Data Using DataAnnotations Attributes

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

HandleErrorAttribute class

Securing MVC applications

AuthorizeAttribute class

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

Preventing Cross-Site Request Forgery (CSRF) attacks (tutorial on the ASP.NET Web site)

SQL Injection (SQL Server 2008 Books Online)

How To: Protect From SQL Injection in ASP.NET (Patterns & practices)

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

OutputCacheAttribute class

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 1.0 (Scott Guthrie)

ASP.NET MVC 2 Preview 1 Release (Scott Guthrie)

VS10 Beta 2 from an ASP.NET MVC Perspective (Phil Haack)

Default Templated Views (Phil Haack)

JSON Hijacking (Phil Haack)

Using jQuery Grid with ASP.NET MVC (Phil Haack)

Scripting ASP.NET MVC Views Stored in the Database (Phil Haack)

Hanselminutes on 9 - ASP.NET MVC 2 Preview 1 Released (Video by Scott Hanselman)

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

Building Web Apps without Web Forms (Chris Tavares)

Page view tracker