Вы находитесь на странице: 1из 17

Create a Movie Database Application in 15 Minutes with ASP.NET ... http://www.asp.net/mvc/overview/older-versions-1/movie-database/cre...

Aidez-nous amliorer les Forums ASP.NET ! Nous voulons entendre vos ides!

ASP.NET
Accueil Obtenir commenc Apprendre Hbergement Tlchargements Communaut

Forums Aide

Crer une Application de base de donnes


de film en 15 Minutes avec ASP.NET MVC
(c#)
Par Stephen Walther | 27 janvier 2009 | Niveau 100 : dbutant
273 de 331 personnes ont trouv cela utile

Tlcharger le Code (http://download.microsoft.com/download/7/2/8/728F8794-


E59A-4D18-9A56-7AD2DB05BD9D/MovieApp_CS.zip)

Stephen Walther gnre une entire axe sur la base de donnes ASP.NET MVC application du dbut la
fin. Ce tutoriel est une excellente introduction pour les gens qui sont nouveaux dans l'infrastructure
ASP.NET MVC et qui veulent se faire une ide du processus de gnration d'une application ASP.NET
MVC.

Le but de ce tutoriel est de vous donner un sentiment de quoi il ressemble pour construire une application
ASP.NET MVC. Dans ce tutoriel, je souffle travers la construction d'une application ASP.NET MVC du dbut la fin. Je
vous montre comment gnrer une application axe sur la base de donnes simple qui illustre comment vous pouvez
rpertorier, crer et modifier des enregistrements de base de donnes.

Pour simplifier le processus d'dification de notre application, nous allons prendre avantage des caractristiques
chafaudage de Visual Studio 2008. Nous allons laisser Visual Studio gnre le code initial et le contenu de nos
contrleurs, modles et vues.

Si vous avez travaill avec Pages ASP ou ASP.NET, alors vous devriez trouver ASP.NET MVC trs familier. ASP.NET MVC
vues sont tout fait comme les pages d'une application Active Server Pages. Et, comme une application ASP.NET Web
Forms traditionnelle, ASP.NET MVC vous fournit un accs complet l'ensemble riche de classes fournies par le .NET
framework et de langues.

Mon espoir est que ce tutoriel vous donnera une ide de comment l'exprience de la cration d'une application
ASP.NET MVC est fois semblable et diffrent de l'exprience de la cration d'une application Active Server Pages ou
formulaires Web ASP.NET.

Vue d'ensemble de l'Application de base de donnes de film


Parce que notre objectif est de garder les choses simples, nous allons construire une application de base de donnes
de film trs simple. Notre simple Movie Database application nous permettra de faire trois choses :

Cette page a t utile ? Vos commentaires sur ce contenu est important. Faites-nous savoir ce que
vous pensez. Oui Non

1 sur 17 13/03/2016 08:35


Create a Movie Database Application in 15 Minutes with ASP.NET ... http://www.asp.net/mvc/overview/older-versions-1/movie-database/cre...

un enregistrement de base de donnes de film existant

Encore une fois, parce que nous voulons garder les choses simples, nous allons prendre avantage du nombre minimal
de fonctionnalits du framework ASP.NET MVC ncessaires la construction de notre application. Par exemple, nous
ne prendre avantage de dveloppement pilot par tests.

Afin de crer notre application, nous devons complter chacune des tapes suivantes :

1. Crer le projet d'Application Web ASP.NET MVC


2. Crer la base de donnes
3. Crer le modle de base de donnes
4. Crez le contrleur ASP.NET MVC
5. Crer des vues de l'ASP.NET MVC

Prliminaires
Vous aurez besoin de Visual Studio 2008 ou Visual Web Developer 2008 Express pour construire une application
ASP.NET MVC. Vous devez galement tlcharger l'infrastructure ASP.NET MVC.

Si vous ne possdez pas de Visual Studio 2008, vous pouvez tlcharger une version d'essai de 90 jours de Visual
Studio 2008 de ce site :

http://msdn.Microsoft.com/en-US/VS2008/Products/cc268305.aspx (http://msdn.microsoft.com/en-us/vs2008
/products/cc268305.aspx)

Vous pouvez galement crer ASP.NET MVC applications avec Visual Web Developer 2008 Express. Si vous dcidez
d'utiliser Visual Web Developer Express vous devez avoir Service Pack 1 install. Vous pouvez tlcharger Visual Web
Developer 2008 Express avec le Service Pack 1 partir de ce site :

http://www.Microsoft.com/downloads/details.aspx?FamilyID=BDB6391C-05CA-4036-9154-6DF4F6DEBD14&
displaylang=en (http://www.microsoft.com/downloads/details.aspx?FamilyId=BDB6391C-
05CA-4036-9154-6DF4F6DEBD14&displaylang=en)

Aprs avoir install Visual Studio 2008 ou Visual Web Developer 2008, vous devez installer l'infrastructure ASP.NET
MVC. Vous pouvez tlcharger l'infrastructure ASP.NET MVC sur le site Web suivant :

http://www.asp.NET/MVC/ (/mvc/)

Au lieu de tlcharger le framework ASP.NET et l'infrastructure ASP.NET MVC individuellement, vous


pouvez profiter de la Web Platform Installer. Le Web Platform Installer est une application qui vous
permet de grer facilement les applications installes sont votre ordinateur :

http://www.Microsoft.com/Web/Gallery/install.aspx (http://www.microsoft.com/web/gallery
/Install.aspx)

Cration d'un projet d'Application Web ASP.NET MVC


Cette page a t utile ? Vos commentaires sur ce contenu est important. Faites-nous savoir ce que
vous pensez. Oui Non

2 sur 17 13/03/2016 08:35


Create a Movie Database Application in 15 Minutes with ASP.NET ... http://www.asp.net/mvc/overview/older-versions-1/movie-database/cre...

Donnez votre projet le nom MovieApp, puis cliquez sur le bouton OK.

(//media-www-asp.azureedge.net/images-legacy/asp.net/images/mvc/21/cs/image001.png)
Figure 01: bote de dialogue Nouveau projet (cliquez pour voir l'image pleine grandeur (//media-
www-asp.azureedge.net/images-legacy/asp.net/images/mvc/21/cs/image001.png) )

Assurez-vous que vous slectionnez .NET Framework 3.5 dans la liste droulante en haut de la bote de dialogue
Nouveau projet ou le modle de projet Application Web de ASP.NET MVC n'apparatra pas.

Chaque fois que vous crez un nouveau projet d'Application Web MVC, Visual Studio vous invite crer un projet de
test d'unit spare. La bote de dialogue de la Figure 2 s'affiche. Parce que nous ne crer des tests dans ce tutoriel en
raison de contraintes de temps (et, oui, nous devrions nous sentir un peu coupables ce sujet) ne slectionnez
l'option , puis cliquez sur le bouton OK .

Visual Web Developer ne supporte pas les projets de test.

(//media-www-asp.azureedge.net/images-legacy/asp.net/images/mvc/21/cs/image003.png)
Figure 02: bote de dialogue crer le projet Test unitaire (cliquez pour voir l'image pleine grandeur (//media-
www-asp.azureedge.net/images-legacy/asp.net/images/mvc/21/cs/image003.png) )

Une application ASP.NET MVC est un ensemble standard de dossiers : un dossier de modles, des vues et des
contrleurs. Vous pouvez voir cet ensemble standard de dossiers dans la fentre de l'Explorateur de solutions. Nous
aurez besoin d'ajouter des fichiers chacun des modles, des vues et contrleurs de dossiers afin de construire notre
application Movie Database.

Lorsque vous crez une application MVC avec Visual Studio, vous obtenez un exemple d'application. Parce que nous
voulons repartir zro, nous devons supprimer le contenu de cet exemple d'application. Vous devez supprimer le
fichier suivant et le dossier suivant :

Controllers\HomeController.cs
Views\Home

Cration de la base de donnes


Nous devons crer une base de donnes pour maintenir nos dossiers de base de donnes de film. Heureusement,
Visual Studio inclut une base de donnes gratuite nomme SQL Server Express. Procdez comme suit pour crer la
base de donnes :

1. Cliquez-droit sur le dossier App_Data dans la fentre de l'Explorateur de solutions, puis slectionnez l'option de
menu Ajouter, nouvel lment.
2. Slectionnez la catgorie de donnes et slectionnez le modle de Base de donnes de SQL Server (voir Figure
3).
3. Nommez votre nouvelle base de donnes MoviesDB.mdf , puis cliquez sur le bouton Ajouter .

Aprs avoir cr votre base de donnes, vous pouvez vous connecter la base de donnes en double-cliquant sur le
Cette page a t utile ? Vos commentaires sur ce contenu est important. Faites-nous savoir ce que
vous pensez. Oui Non

3 sur 17 13/03/2016 08:35


Create a Movie Database Application in 15 Minutes with ASP.NET ... http://www.asp.net/mvc/overview/older-versions-1/movie-database/cre...

La fentre de l'Explorateur de serveurs se nomme la fentre de l'Explorateur de base de donnes dans


le cas de Visual Web Developer.

(//media-www-asp.azureedge.net/images-legacy/asp.net/images/mvc/21/cs/image005.png)
Figure 03: cration d'une base de donnes Microsoft SQL Server (cliquez pour voir l'image pleine grandeur
(//media-www-asp.azureedge.net/images-legacy/asp.net/images/mvc/21/cs/image005.png) )

Ensuite, nous devons crer une nouvelle table de base de donnes. Depuis dans la fentre de l'Explorateur de serveur,
cliquez-droit sur le dossier Tables et slectionnez l'option de menu Ajouter une nouvelle Table. Cliquez sur cette
option de menu pour ouvrir le concepteur de tables de base de donnes. Crez les colonnes de base de donnes
suivantes :

Nom de colonne Type de donnes Autorise les valeurs null

ID Int Faux

Titre Nvarchar (100) Faux

Directeur Nvarchar (100) Faux

DateReleased DateTime Faux

La premire colonne, la colonne Id, possde deux proprits spciales. Tout d'abord, vous devez marquer la colonne
Id de la colonne de cl primaire. Aprs avoir slectionn la colonne Id, cliquez sur le bouton Dfinir la cl primaire
(c'est l'icne qui ressemble une cl). Deuximement, vous devez marquer la colonne Id comme une colonne
d'identit. Dans la fentre Proprits des colonnes, faites dfiler jusqu' la section Spcification de l'identit et
dveloppez-le. Modifiez la proprit Identity est la valeur Oui. Lorsque vous avez termin, la table devrait ressembler
la Figure 4.

(//media-www-asp.azureedge.net/images-legacy/asp.net/images/mvc/21/cs/image007.png)
Figure 04: The Movies database table (cliquez pour voir l'image pleine grandeur (//media-www-asp.azureedge.net
/images-legacy/asp.net/images/mvc/21/cs/image007.png) )

L'tape finale consiste enregistrer la nouvelle table. Cliquez sur le bouton Enregistrer (l'icne de la disquette) et
donner la nouvelle table les nom de films.

Aprs avoir termin la cration de la table, ajouter quelques enregistrements de film la table. Cliquez-droit sur la
table de films dans la fentre Explorateur de serveurs, puis slectionnez l'option de menu Afficher les donnes de
Table. Entrez une liste de vos films prfrs (voir Figure 5).

(//media-www-asp.azureedge.net/images-legacy/asp.net/images/mvc/21/cs/image009.png)

Cette page a t utile ? Vos commentaires sur ce contenu est important. Faites-nous savoir ce que
vous pensez. Oui Non

4 sur 17 13/03/2016 08:35


Create a Movie Database Application in 15 Minutes with ASP.NET ... http://www.asp.net/mvc/overview/older-versions-1/movie-database/cre...

Cration du modle
Nous devons ensuite crer un ensemble de classes pour reprsenter notre base de donnes. Nous avons besoin de
crer un modle de base de donnes. Nous allons prendre avantage de l'Entity Framework de Microsoft pour gnrer
les classes de notre modle de base de donnes automatiquement.

L'infrastructure ASP.NET MVC n'est pas li Microsoft Entity Framework. Vous pouvez crer votre base
de donnes les classes de modle en profitant d'une varit de mappage relationnel objet (ou / M)
outils y compris LINQ to SQL, Subsonic et NHibernate.

Procdez comme suit pour lancer l'Assistant Entity Data Model :

1. Cliquez droit sur le dossier modles dans la fentre de l'Explorateur de solutions et la slectionner le menu
option Ajouter, nouvel lment.
2. Slectionnez la catgorie de donnes et slectionnez le modle ADO.NET Entity Data Model .
3. Donner votre modle de donnes le nom MoviesDBModel.edmx , puis cliquez sur le bouton Ajouter .

Aprs avoir cliqu sur le bouton Ajouter, l'Assistant Entity Data Model s'affiche (voir Figure 6). Suivez ces tapes pour
terminer l'Assistant :

1. Dans l'tape Choisir modle contenu , slectionnez l'option gnrer partir de base de donnes .
2. Dans l'tape Choisir votre connexion de donnes , utilisez la connexion de donnes de MoviesDB.mdf et le
nom de MoviesDBEntities pour les paramtres de connexion. Cliquez sur le bouton suivant .
3. Dans l'tape Choisir vos objets de base de donnes , dveloppez le nud Tables, slectionnez la table de films.
Entrer dans l'espace de noms MovieApp.Models et cliquez sur le bouton Terminer .

(//media-www-asp.azureedge.net/images-legacy/asp.net/images/mvc/21/cs/image011.png)
Figure 06: gnration d'un modle de base de donnes avec l'Assistant Entity Data Model (cliquez pour voir l'image
pleine grandeur (//media-www-asp.azureedge.net/images-legacy/asp.net/images/mvc/21/cs/image011.png) )

Aprs avoir termin l'Assistant EDM, Entity Data Model Designer s'ouvre. Le concepteur doit afficher la table de base
de donnes de films (voir Figure 7).

(//media-www-asp.azureedge.net/images-legacy/asp.net/images/mvc/21/cs/image013.png)
Figure 07: The Entity Data Model Designer (cliquez pour voir l'image pleine grandeur (//media-
www-asp.azureedge.net/images-legacy/asp.net/images/mvc/21/cs/image013.png) )

Nous devons faire un changement avant de continuer. L'Assistant gnre une classe de modle nomme films qui
reprsente la table de base de donnes de films. Parce que nous allons utiliser la classe films pour reprsenter un film
particulier, nous devons modifier le nom de la classe soit le film au lieu de films (du singulier au lieu du pluriel).

Double-cliquez sur le nom de la classe sur l'aire du concepteur et changer le nom de la classe de films au cinma.
Aprs avoir apport cette modification, cliquez sur le bouton Enregistrer (l'icne de la disquette) pour gnrer la

Cette page a t utile ? Vos commentaires sur ce contenu est important. Faites-nous savoir ce que
vous pensez. Oui Non

5 sur 17 13/03/2016 08:35


Create a Movie Database Application in 15 Minutes with ASP.NET ... http://www.asp.net/mvc/overview/older-versions-1/movie-database/cre...

Cration le contrleur ASP.NET MVC


L'tape suivante consiste crer le contrleur de ASP.NET MVC. Un contrleur est charg de contrler la manire
dont un utilisateur interagit avec une application ASP.NET MVC.

Procdez comme suit :

1. Dans la fentre de l'Explorateur de solutions, cliquez droit sur le dossier de contrleurs et slectionnez l'option
de menu Ajouter, contrleur.
2. Dans la bote de dialogue Ajouter contrleur, entrez le nom HomeController et cochez la case cocher Ajouter
des mthodes d'action pour les scnarios Create, Update et dtails (voir Figure 8).
3. Cliquez sur le bouton Ajouter pour ajouter le nouveau contrleur votre projet.

Aprs avoir termin ces tapes, le contrleur dans le Listing 1 est cr. Remarquez qu'il contient des mthodes
nommes Index, dtails, crer et d'diter. Dans les sections suivantes, nous allons ajouter le code ncessaire pour
obtenir ces mthodes pour travailler.

(//media-www-asp.azureedge.net/images-legacy/asp.net/images/mvc/21/cs/image015.png)
Figure 08: ajout d'un contrleur MVC ASP.NET de nouveau (cliquez pour voir l'image pleine grandeur (//media-
www-asp.azureedge.net/images-legacy/asp.net/images/mvc/21/cs/image015.png) )

Le Listing 1-Controllers\HomeController.cs

using System;

using System.Collections.Generic;

using System.Linq;

using System.Web;

using System.Web.Mvc;

using System.Web.Mvc.Ajax;

namespace MovieApp.Controllers

public class HomeController : Controller

//

// GET: /Home/

public ActionResult Index()

Cette page a t utile ? Vos commentaires sur ce contenu est important. Faites-nous savoir ce que
vous pensez. Oui Non

6 sur 17 13/03/2016 08:35


Create a Movie Database Application in 15 Minutes with ASP.NET ... http://www.asp.net/mvc/overview/older-versions-1/movie-database/cre...

//

// GET: /Home/Details/5

public ActionResult Details(int id)

return View();

//

// GET: /Home/Create

public ActionResult Create()

return View();

//

// POST: /Home/Create

[AcceptVerbs(HttpVerbs.Post)]

public ActionResult Create(FormCollection collection)

try

// TODO: Add insert logic here

return RedirectToAction("Index");

catch

return View();

Cette page a t utile ? Vos commentaires sur ce contenu est important. Faites-nous savoir ce que
vous pensez. Oui Non

7 sur 17 13/03/2016 08:35


Create a Movie Database Application in 15 Minutes with ASP.NET ... http://www.asp.net/mvc/overview/older-versions-1/movie-database/cre...

// GET: /Home/Edit/5

public ActionResult Edit(int id)

return View();

//

// POST: /Home/Edit/5

[AcceptVerbs(HttpVerbs.Post)]

public ActionResult Edit(int id, FormCollection collection)

try

// TODO: Add update logic here

return RedirectToAction("Index");

catch

return View();

Enregistrements de base de donnes liste


La mthode Index() du contrleur Home est la mthode par dfaut pour une application ASP.NET MVC. Lorsque vous
excutez une application ASP.NET MVC, la mthode Index() est la premire mthode de contrleur qui est appele.

Cette page a t utile ? Vos commentaires sur ce contenu est important. Faites-nous savoir ce que
vous pensez. Oui Non

8 sur 17 13/03/2016 08:35


Create a Movie Database Application in 15 Minutes with ASP.NET ... http://www.asp.net/mvc/overview/older-versions-1/movie-database/cre...

classe HomeController dans le Listing 2 afin qu'il contienne un nouveau champ priv nomm Private. La
classe MoviesDBEntities reprsente notre modle de base de donnes et nous allons utiliser cette classe pour
communiquer avec notre base de donnes.

J'ai galement modifi la mthode Index() dans le Listing 2. La mthode Index() utilise la classe MoviesDBEntities pour
rcuprer tous les enregistrements de film de la table de base de donnes de films. L'expression Private.
MovieSet.ToList() renvoie une liste de tous les enregistrements de film de la table de base de donnes de films.

La liste des films est passe l'affichage. Tout ce qui est pass la mthode View() obtient pass l'affichage sous
forme de donnes de la vue.

Listing 2-Controllers/HomeController.cs (mthode modifie de l'Index)

using System.Linq;

using System.Web.Mvc;

using MovieApp.Models;

namespace MovieApp.Controllers

public class HomeController : Controller

private MoviesDBEntities _db = new MoviesDBEntities();

public ActionResult Index()

return View(_db.MovieSet.ToList());

La mthode Index() retourne une vue nomme Index. Nous avons besoin de crer ce point de vue pour afficher la liste
des enregistrements de base de donnes de film. Procdez comme suit :

Vous devez construire votre projet (slectionnez l'option de menu crer, gnrer la Solution) avant d'ouvrir la bote
de dialogue Ajouter une vue , ou aucuns classes n'apparatra dans la liste droulante de la classe de donnes
d'affichage .

1. Faites un clic droit de la mthode Index() dans l'diteur de code, puis slectionnez l'option de menu Ajouter une
vue (voir Figure 9).
2. Dans la bote de dialogue Ajouter une vue, vrifiez que la case cocher crer un fortement typ vue est
Cette page a t utile ? Vos commentaires sur ce contenu est important. Faites-nous savoir ce que
vous pensez. Oui Non

9 sur 17 13/03/2016 08:35


Create a Movie Database Application in 15 Minutes with ASP.NET ... http://www.asp.net/mvc/overview/older-versions-1/movie-database/cre...

ur le bouton Ajouter pour crer le nouveau afficher (voir Figure 10).

Aprs avoir termin ces tapes, une nouvelle vue appele Index.aspx est ajoute au dossier Views\Home. Le contenu
de la vue Index est inclus dans le Listing 3.

(//media-www-asp.azureedge.net/images-legacy/asp.net/images/mvc/21/cs/image017.png)
Figure 09: ajout d'une vue d'une action de contrleur (cliquez pour voir l'image pleine grandeur (//media-
www-asp.azureedge.net/images-legacy/asp.net/images/mvc/21/cs/image017.png) )

(//media-www-asp.azureedge.net/images-legacy/asp.net/images/mvc/21/cs/image019.png)
Figure 10: cration d'un nouvel affichage avec la bote de dialogue Ajouter une vue (cliquez pour voir l'image
pleine grandeur (//media-www-asp.azureedge.net/images-legacy/asp.net/images/mvc/21/cs/image019.png) )

Listing 3-Views\Home\Index.aspx

<%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mv

<asp:Content ID="Content1" ContentPlaceHolderID="TitleContent" runat="server">

Index

</asp:Content>

<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server">

<h2>Index</h2>

<table>

<tr>

<th></th>

<th>

Id

</th>

<th>

Title

</th>

<th>

Director

</th>

Cette page a t utile ? Vos commentaires sur ce contenu est important. Faites-nous savoir ce que
vous pensez. Oui Non

10 sur 17 13/03/2016 08:35


Create a Movie Database Application in 15 Minutes with ASP.NET ... http://www.asp.net/mvc/overview/older-versions-1/movie-database/cre...

DateReleased

</th>

</tr>

<% foreach (var item in Model) { %>

<tr>

<td>

<%= Html.ActionLink("Edit", "Edit", new { id=item.Id }) %> |

<%= Html.ActionLink("Details", "Details", new { id=item.Id })%>

</td>

<td>

<%= Html.Encode(item.Id) %>

</td>

<td>

<%= Html.Encode(item.Title) %>

</td>

<td>

<%= Html.Encode(item.Director) %>

</td>

<td>

<%= Html.Encode(String.Format("{0:g}", item.DateReleased)) %>

</td>

</tr>

<% } %>

</table>

Cette page a t utile ? Vos commentaires sur ce contenu est important. Faites-nous savoir ce que
vous pensez. Oui Non

11 sur 17 13/03/2016 08:35


Create a Movie Database Application in 15 Minutes with ASP.NET ... http://www.asp.net/mvc/overview/older-versions-1/movie-database/cre...

</asp:Content>

La vue Index affiche tous les enregistrements de film de la table de base de donnes de films dans un tableau HTML.
La vue contient une boucle foreach qui effectue une itration dans chaque film reprsent par la proprit
ViewData.Model. Si vous excutez votre application en appuyant sur la touche F5, puis vous verrez la page web la
Figure 11.

(//media-www-asp.azureedge.net/images-legacy/asp.net/images/mvc/21/cs/image021.png)
Figure 11: vue de l'Index (cliquez pour voir l'image pleine grandeur (//media-www-asp.azureedge.net/images-legacy
/asp.net/images/mvc/21/cs/image021.png) )

Cration de nouveaux enregistrements de base de donnes


La vue Index que nous avons cr dans la section prcdente inclut un lien pour la cration de nouveaux
enregistrements de base de donnes. Allons-y et implmentez le code et crer la vue ncessaires la cration de
nouveaux enregistrements de base de donnes de film.

Le contrleur d'accueil contient deux mthodes nommes Create(). La premire mthode Create() n'a aucun
paramtre. Cette surcharge de la mthode Create() est utilise pour afficher le formulaire HTML pour crer un nouvel
enregistrement de base de donnes de film.

La deuxime mthode Create() a un paramtre FormCollection. Cette surcharge de la mthode Create() est appele
lorsque le formulaire HTML pour la cration d'un nouveau film est publi sur le serveur. Notez que cette seconde
mthode Create() a un attribut AcceptVerbs qui empche la mthode sauf si une opration HTTP POST.

Cette deuxime mthode Create() a t modifie dans la mise jour classe HomeController dans Listing 4. La nouvelle
version de la mthode Create() accepte un paramtre de film et contient la logique d'insertion d'un nouveau film dans
la table de base de donnes de films.

Notez l'attribut de liaison. Parce que nous ne voulons pas mettre jour la proprit Id de film de
formulaire HTML, nous devons exclure explicitement cette proprit.

Listing 4-Controllers\HomeController.cs (mis jour le mthode Create)

//

// GET: /Home/Create

public ActionResult Create()

Cette page a t utile ? Vos commentaires sur ce contenu est important. Faites-nous savoir ce que
vous pensez. Oui Non

12 sur 17 13/03/2016 08:35


Create a Movie Database Application in 15 Minutes with ASP.NET ... http://www.asp.net/mvc/overview/older-versions-1/movie-database/cre...

//

// POST: /Home/Create

[AcceptVerbs(HttpVerbs.Post)]

public ActionResult Create([Bind(Exclude="Id")] Movie movieToCreate)

if (!ModelState.IsValid)

return View();

_db.AddToMovieSet(movieToCreate);

_db.SaveChanges();

return RedirectToAction("Index");

Visual Studio, il est facile de crer le formulaire de cration d'une nouvelle base de donnes de film enregistrer (voir
Figure 12). Procdez comme suit :

1. Faites un clic droit de la mthode Create() dans l'diteur de code, puis slectionnez l'option de menu Ajouter
une vue.
2. Vrifiez que la case cocher crer un fortement typ vue est active.
3. Dans la liste droulante contenu de la vue , slectionnez la valeur crer.
4. Dans la classe de donnes d'affichage de la liste droulante, slectionnez la valeur MovieApp.Models.Movie.
5. Cliquez sur le bouton Ajouter pour crer le nouvel affichage.

(//media-www-asp.azureedge.net/images-legacy/asp.net/images/mvc/21/cs/image023.png)
Figure 12: ajout de la vue Create (cliquez pour voir l'image pleine grandeur (//media-www-asp.azureedge.net
/images-legacy/asp.net/images/mvc/21/cs/image023.png) )

Visual Studio gnre automatiquement des avis dans la liste 5. Cette vue contient un formulaire HTML qui contient les
champs qui correspondent chacune des proprits de la classe de film.

La liste 5 Views\Home\Create.aspx

<%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mv

<asp:Content ID="Content1" ContentPlaceHolderID="TitleContent" runat="server">

Cette page a t utile ? Vos commentaires sur ce contenu est important. Faites-nous savoir ce que
vous pensez. Oui Non

13 sur 17 13/03/2016 08:35


Create a Movie Database Application in 15 Minutes with ASP.NET ... http://www.asp.net/mvc/overview/older-versions-1/movie-database/cre...

<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server">

<h2>Create</h2>

<%= Html.ValidationSummary("Create was unsuccessful. Please correct the errors and try again."

<% using (Html.BeginForm()) {%>

<fieldset>

<legend>Fields</legend>

<p>

<label for="Id">Id:</label>

<%= Html.TextBox("Id") %>

<%= Html.ValidationMessage("Id", "*") %>

</p>

<p>

<label for="Title">Title:</label>

<%= Html.TextBox("Title") %>

<%= Html.ValidationMessage("Title", "*") %>

</p>

<p>

<label for="Director">Director:</label>

<%= Html.TextBox("Director") %>

<%= Html.ValidationMessage("Director", "*") %>

</p>

<p>

<label for="DateReleased">DateReleased:</label>

<%= Html.TextBox("DateReleased") %>

<%= Html.ValidationMessage("DateReleased", "*") %>

</p>

Cette page a t utile ? Vos commentaires sur ce contenu est important. Faites-nous savoir ce que
vous pensez. Oui Non

14 sur 17 13/03/2016 08:35


Create a Movie Database Application in 15 Minutes with ASP.NET ... http://www.asp.net/mvc/overview/older-versions-1/movie-database/cre...

</p>

</fieldset>

<% } %>

<div>

<%=Html.ActionLink("Back to List", "Index") %>

</div>

</asp:Content>

Le formulaire HTML gnr par la bote de dialogue Ajouter une vue gnre un champ de formulaire
de code. Parce que la colonne Id est une colonne d'identit, nous n'avez pas besoin de ce champ de
formulaire et vous pouvez le supprimer en toute scurit.

Aprs avoir ajout la vue de la cration, vous pouvez ajouter de nouveaux enregistrements de film la base de
donnes. Excutez votre application en appuyant sur la touche F5, puis cliquez sur le lien crer nouveau pour voir le
formulaire la Figure 13. Si vous remplissez et soumettez le formulaire, un nouveau record de base de donnes de
film est cr.

Notez que vous obtenez la validation du formulaire automatiquement. Si vous ngligez d'entrer une date de sortie
pour un film ou si vous entrez une date de sortie non valide, alors le formulaire s'affiche de nouveau et le champ de
date de sortie est mis en surbrillance.

(//media-www-asp.azureedge.net/images-legacy/asp.net/images/mvc/21/cs/image025.png)
Figure 13: cration d'un nouvel enregistrement de base de donnes de film (cliquez pour voir l'image pleine
grandeur (//media-www-asp.azureedge.net/images-legacy/asp.net/images/mvc/21/cs/image025.png) )

Modification des enregistrements de base de donnes existants


Dans les sections prcdentes, nous avons discut de comment vous pouvez numrer et crer de nouveaux
enregistrements de base de donnes. Dans cette dernire section, nous discutons comment vous pouvez modifier des
enregistrements de base de donnes existants.

Tout d'abord, nous devons gnrer le formulaire de modification. Cette tape est facile tant donn que Visual Studio
gnre le formulaire de modification pour nous automatiquement. Ouvrez la classe HomeController.cs dans l'diteur
de code de Visual Studio et procdez comme suit :

1. Faites un clic droit de la mthode Edit() dans l'diteur de code, puis slectionnez l'option de menu Ajouter une
vue (voir Figure 14).
2. Cochez la case cocher crer une vue fortement type.
3. Dans la liste droulante contenu de la vue , slectionnez la valeur Edit.

Cette page a t utile ? Vos commentaires sur ce contenu est important. Faites-nous savoir ce que
vous pensez. Oui Non

15 sur 17 13/03/2016 08:35


Create a Movie Database Application in 15 Minutes with ASP.NET ... http://www.asp.net/mvc/overview/older-versions-1/movie-database/cre...

ces tapes ajoute une nouvelle vue appele Edit.aspx dans le dossier Views\Home. Cette vue contient
un formulaire HTML pour modifier un enregistrement de film.

(//media-www-asp.azureedge.net/images-legacy/asp.net/images/mvc/21/cs/image027.png)
Figure 14: ajout de la vue d'dition (cliquez pour voir l'image pleine grandeur (//media-www-asp.azureedge.net
/images-legacy/asp.net/images/mvc/21/cs/image027.png) )

La vue d'dition contient un champ de formulaire HTML qui correspond la proprit Id de film. Parce
que vous ne voulez pas modifier la valeur de la proprit Id de personnes, vous devez supprimer ce
champ de formulaire.

Enfin, nous devons modifier le contrleur de la maison afin qu'il supporte l'dition un enregistrement de base de
donnes. La classe HomeController mise jour figure dans le Listing 6.

Listing 6 Controllers\HomeController.cs (mthodes Edit)

//

// GET: /Home/Edit/5

public ActionResult Edit(int id)

var movieToEdit = (from m in _db.MovieSet

where m.Id == id

select m).First();

return View(movieToEdit);

//

// POST: /Home/Edit/5

[AcceptVerbs(HttpVerbs.Post)]

public ActionResult Edit(Movie movieToEdit)

var originalMovie = (from m in _db.MovieSet

Cette page a t utile ? Vos commentaires sur ce contenu est important. Faites-nous savoir ce que
vous pensez. Oui Non

16 sur 17 13/03/2016 08:35


Create a Movie Database Application in 15 Minutes with ASP.NET ... http://www.asp.net/mvc/overview/older-versions-1/movie-database/cre...

IsValid)

return View(originalMovie);

_db.ApplyPropertyChanges(originalMovie.EntityKey.EntitySetName, movieToEdit);

_db.SaveChanges();

return RedirectToAction("Index");

Dans le Listing 6, j'ai ajout une logique supplmentaire pour les deux surcharges de la mthode Edit(). La premire
mthode Edit() renvoie l'enregistrement de base de donnes de film qui correspond au paramtre Id pass la
mthode. La deuxime surcharge effectue les mises jour d'un enregistrement de film dans la base de donnes.

Notez que vous devez rcuprer le film original et appelez ensuite ApplyPropertyChanges(), pour mettre jour la
squence existante dans la base de donnes.

Rsum
Le but de ce tutoriel est de vous donner une ide de l'exprience de la cration d'une application ASP.NET MVC.
J'espre que vous avez dcouvert que construire un MVC ASP.NET application web est trs similaire l'exprience de
la cration d'une application Pages ASP ou ASP.NET.

Dans ce tutoriel, nous avons examin les caractristiques de base de plus de l'infrastructure ASP.NET MVC. Dans les
futurs tutoriels, nous plonger plus profondment dans des sujets tels que les contrleurs, actions du contrleur, vues,
examiner les donnes et programmes d'assistance HTML.

Cet article a t initialement cr le 27 janvier 2009

Informations de l'auteur

Stephen Stephen Walther Stephen Walther participe ds le dbut avec ASP.NET. Sa socit de formation,
Walther les AspWorkshops.com et les superexperttraining.com, a effectu la premire classe de formation
sur ASP.NET. Il enseigne galement rgulirement sur ASP.NET et il est un Microsoft MVP ASP.NET.

Commentaires
(51)

Cette page a t utile ? Vos commentaires sur ce contenu est important. Faites-nous savoir ce que
vous pensez. Oui Non

17 sur 17 13/03/2016 08:35