Vous êtes sur la page 1sur 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 à améliorer les Forums ASP.NET ! Nous voulons

Aidez-nous à améliorer les Forums ASP.NET ! Nous voulons entendre vos idées!

ASP.NET

Accueil

Obtenir commencé

Apprendre

Hébergement

Téléchargements

Communauté

Forums

Aide

Créer une Application de base de données de film en 15 Minutes avec ASP.NET MVC (c#)

Par Stephen Walther | 27 janvier 2009 | Niveau 100 : débutant 273 de 331 personnes ont trouvé cela utile

Télécharger le Code (http://download.microsoft.com/download/7/2/8/728F8794-

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

Stephen Walther génère une entière axée sur la base de données ASP.NET MVC application du début à 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 idée du processus de génération 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 début à la fin. Je vous montre comment générer une application axée sur la base de données simple qui illustre comment vous pouvez répertorier, créer et modifier des enregistrements de base de données.

Pour simplifier le processus d'édification de notre application, nous allons prendre avantage des caractéristiques échafaudage de Visual Studio 2008. Nous allons laisser Visual Studio génère le code initial et le contenu de nos contrôleurs, modèles et vues.

Si vous avez travaillé avec Pages ASP ou ASP.NET, alors vous devriez trouver ASP.NET MVC très 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 accès complet à l'ensemble riche de classes fournies par le .NET framework et de langues.

Mon espoir est que ce tutoriel vous donnera une idée de comment l'expérience de la création d'une application ASP.NET MVC est fois semblable et différent de l'expérience de la création d'une application Active Server Pages ou formulaires Web ASP.NET.

Vue d'ensemble de l'Application de base de données de film

Parce que notre objectif est de garder les choses simples, nous allons construire une application de base de données

Cette page a été utile ?

vous pensez.

Oui

Non

Vos commentaires sur ce contenu est important. Faites-nous savoir ce que

Create a Movie Database Application in 15 Minutes with ASP.NET

http://www.asp.net/mvc/overview/older-versions-1/movie-database/cre

base de données de film existant Encore une fois, parce que

base de données de film existant

Encore une fois, parce que nous voulons garder les choses simples, nous allons prendre avantage du nombre minimal de fonctionnalités du framework ASP.NET MVC nécessaires à la construction de notre application. Par exemple, nous ne prendre avantage de développement piloté par tests.

Afin de créer notre application, nous devons compléter chacune des étapes suivantes :

1. Créer le projet d'Application Web ASP.NET MVC

2. Créer la base de données

3. Créer le modèle de base de données

4. Créez le contrôleur ASP.NET MVC

5. Créer des vues de l'ASP.NET MVC

Préliminaires

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

Si vous ne possédez pas de Visual Studio 2008, vous pouvez télécharger 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 créer ASP.NET MVC applications avec Visual Web Developer 2008 Express. Si vous décidez d'utiliser Visual Web Developer Express vous devez avoir Service Pack 1 installé. Vous pouvez télécharger 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)

Après avoir installé Visual Studio 2008 ou Visual Web Developer 2008, vous devez installer l'infrastructure ASP.NET MVC. Vous pouvez télécharger l'infrastructure ASP.NET MVC sur le site Web suivant :

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

Web suivant : http://www.asp.NET/MVC/ ( / m v c / ) Au lieu de télécharger le

Au lieu de télécharger 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 gérer facilement les applications installées sont votre ordinateur :

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

/Install.aspx)

Création d'un projet d'Application Web ASP NET MVC

Cette page a été utile ?

vous pensez.

Oui

Non

Vos commentaires sur ce contenu est important. Faites-nous savoir ce que

Create a Movie Database Application in 15 Minutes with ASP.NET

http://www.asp.net/mvc/overview/older-versions-1/movie-database/cre

ojet le nom MovieApp, puis cliquez sur le bouton OK.

ojet 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: boîte 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 sélectionnez .NET Framework 3.5 dans la liste déroulante en haut de la boîte de dialogue Nouveau projet ou le modèle de projet Application Web de ASP.NET MVC n'apparaîtra pas.

Chaque fois que vous créez un nouveau projet d'Application Web MVC, Visual Studio vous invite à créer un projet de test d'unité séparée. La boîte de dialogue de la Figure 2 s'affiche. Parce que nous ne créer des tests dans ce tutoriel en raison de contraintes de temps (et, oui, nous devrions nous sentir un peu coupables à ce sujet) ne sélectionnez l'option , puis cliquez sur le bouton OK .

Visual Web Developer ne supporte pas les projets de test.

. 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: boîte de dialogue créer 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 modèles, des vues et des contrôleurs. Vous pouvez voir cet ensemble standard de dossiers dans la fenêtre de l'Explorateur de solutions. Nous aurez besoin d'ajouter des fichiers à chacun des modèles, des vues et contrôleurs de dossiers afin de construire notre application Movie Database.

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

devez supprimer le fichier suivant et le dossier suivant : Controllers\HomeController.cs Views\Home Création de la

Controllers\HomeController.cs

Views\Home

Création de la base de données

Nous devons créer une base de données pour maintenir nos dossiers de base de données de film. Heureusement, Visual Studio inclut une base de données gratuite nommée SQL Server Express. Procédez comme suit pour créer la base de données :

1. Cliquez-droit sur le dossier App_Data dans la fenêtre de l'Explorateur de solutions, puis sélectionnez l'option de menu Ajouter, nouvel élément.

2. Sélectionnez la catégorie de données et sélectionnez le modèle de Base de données de SQL Server (voir Figure

3).

3. Nommez votre nouvelle base de données MoviesDB.mdf , puis cliquez sur le bouton Ajouter .

Cette page a été utile ?

vous pensez.

Oui

Non

Vos commentaires sur ce contenu est important. Faites-nous savoir ce que

Create a Movie Database Application in 15 Minutes with ASP.NET

http://www.asp.net/mvc/overview/older-versions-1/movie-database/cre

La fenêtre de l'Explorateur de serveurs se nomme la fenêtre de l'Explorateur de base de
La fenêtre de l'Explorateur de serveurs se nomme la fenêtre de l'Explorateur de base de données dans
le cas de Visual Web Developer.

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

Figure 03: création d'une base de données 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 créer une nouvelle table de base de données. Depuis dans la fenêtre de l'Explorateur de serveur, cliquez-droit sur le dossier Tables et sélectionnez l'option de menu Ajouter une nouvelle Table. Cliquez sur cette option de menu pour ouvrir le concepteur de tables de base de données. Créez les colonnes de base de données suivantes :

Nom de colonne

Type de données

Autorise les valeurs null

ID

Int

Faux

Titre

Nvarchar (100)

Faux

Directeur

Nvarchar (100)

Faux

DateReleased

DateTime

Faux

La première colonne, la colonne Id, possède deux propriétés spéciales. Tout d'abord, vous devez marquer la colonne Id de la colonne de clé primaire. Après avoir sélectionné la colonne Id, cliquez sur le bouton Définir la clé primaire (c'est l'icône qui ressemble à une clé). Deuxièmement, vous devez marquer la colonne Id comme une colonne d'identité. Dans la fenêtre Propriétés des colonnes, faites défiler jusqu'à la section Spécification de l'identité et développez-le. Modifiez la propriété Identity est la valeur Oui. Lorsque vous avez terminé, la table devrait ressembler à la Figure 4.

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'icône de la disquette) et donner à la nouvelle table les nom de films.

Après avoir terminé la création de la table, ajouter quelques enregistrements de film à la table. Cliquez-droit sur la table de films dans la fenêtre Explorateur de serveurs, puis sélectionnez l'option de menu Afficher les données de Table. Entrez une liste de vos films préférés (voir Figure 5).

. Entrez une liste de vos films préférés (voir Figure 5). C e t t e

Cette page a été utile ?

vous pensez.

Oui

Non

Vos commentaires sur ce contenu est important. Faites-nous savoir ce que

Create a Movie Database Application in 15 Minutes with ASP.NET

Création du modèle
Création du modèle

http://www.asp.net/mvc/overview/older-versions-1/movie-database/cre

Nous devons ensuite créer un ensemble de classes pour représenter notre base de données. Nous avons besoin de créer un modèle de base de données. Nous allons prendre avantage de l'Entity Framework de Microsoft pour générer

les classes de notre modèle de base de données automatiquement.

L'infrastructure ASP.NET MVC n'est pas lié à Microsoft Entity Framework. Vous pouvez créer votre base de données les classes de modèle en profitant d'une variété de mappage relationnel objet (ou / M) outils y compris LINQ to SQL, Subsonic et NHibernate.

Procédez comme suit pour lancer l'Assistant Entity Data Model :

1. Cliquez droit sur le dossier modèles dans la fenêtre de l'Explorateur de solutions et la sélectionner le menu option Ajouter, nouvel élément.

2. Sélectionnez la catégorie de données et sélectionnez le modèle ADO.NET Entity Data Model .

3. Donner votre modèle de données le nom MoviesDBModel.edmx , puis cliquez sur le bouton Ajouter .

Après 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 modèle contenu , sélectionnez l'option générer à partir de base de données .

2. Dans l'étape Choisir votre connexion de données , utilisez la connexion de données de MoviesDB.mdf et le nom de MoviesDBEntities pour les paramètres de connexion. Cliquez sur le bouton suivant .

3. Dans l'étape Choisir vos objets de base de données , développez le nœud Tables, sélectionnez la table de films. Entrer dans l'espace de noms MovieApp.Models et cliquez sur le bouton Terminer .

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: génération d'un modèle de base de données 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) )

Après avoir terminé l'Assistant EDM, Entity Data Model Designer s'ouvre. Le concepteur doit afficher la table de base

de données de films (voir Figure 7).

la table de base de données 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 génère une classe de modèle nommée films qui représente la table de base de données de films. Parce que nous allons utiliser la classe films pour représenter 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 cinéma.

A

è

i

é

difi

i

li

l

b

E

i

l'i ô

d

l

di

é

é

l

Cette page a été utile ?

vous pensez.

Oui

Non

Vos commentaires sur ce contenu est important. Faites-nous savoir ce que

Create a Movie Database Application in 15 Minutes with ASP.NET

http://www.asp.net/mvc/overview/older-versions-1/movie-database/cre

Création le contrôleur ASP.NET MVC L'étape suivante

Création le contrôleur ASP.NET MVC

L'étape suivante consiste à créer le contrôleur de ASP.NET MVC. Un contrôleur est chargé de contrôler la manière dont un utilisateur interagit avec une application ASP.NET MVC.

Procédez comme suit :

1. Dans la fenêtre de l'Explorateur de solutions, cliquez droit sur le dossier de contrôleurs et sélectionnez l'option de menu Ajouter, contrôleur.

2. Dans la boîte de dialogue Ajouter contrôleur, entrez le nom HomeController et cochez la case à cocher Ajouter des méthodes d'action pour les scénarios Create, Update et détails (voir Figure 8).

3. Cliquez sur le bouton Ajouter pour ajouter le nouveau contrôleur à votre projet.

Après avoir terminé ces étapes, le contrôleur dans le Listing 1 est créé. Remarquez qu'il contient des méthodes nommées Index, détails, créer et d'éditer. Dans les sections suivantes, nous allons ajouter le code nécessaire pour obtenir ces méthodes pour travailler.

code nécessaire pour obtenir ces méthodes pour travailler.

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

Figure 08: ajout d'un contrôleur 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 ?

vous pensez.

Oui

Non

Vos commentaires sur ce contenu est important. Faites-nous savoir ce que

Create a Movie Database Application in 15 Minutes with ASP.NET

http://www.asp.net/mvc/overview/older-versions-1/movie-database/cre

C e t t e p a g e a é t é u t

Cette page a été utile ?

vous pensez.

Oui

Non

//

// 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();

Vos commentaires sur ce contenu est important. Faites-nous savoir ce que

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();

}

}

}

}

catch { return View (); } } } } Enregistrements de base de données liste La

Enregistrements de base de données liste

La méthode Index() du contrôleur Home est la méthode par défaut pour une application ASP.NET MVC. Lorsque vous exécutez une application ASP.NET MVC, la méthode Index() est la première méthode de contrôleur qui est appelée.

Cette page a été utile ?

vous pensez.

Oui

Non

Vos commentaires sur ce contenu est important. Faites-nous savoir ce que

Create a Movie Database Application in 15 Minutes with ASP.NET

http://www.asp.net/mvc/overview/older-versions-1/movie-database/cre

r dans le Listing 2 afin qu'il contienne un nouveau

r dans le Listing 2 afin qu'il contienne un nouveau champ privé nommé Private. La classe MoviesDBEntities représente notre modèle de base de données et nous allons utiliser cette classe pour communiquer avec notre base de données.

J'ai également modifié la méthode Index() dans le Listing 2. La méthode Index() utilise la classe MoviesDBEntities pour récupérer tous les enregistrements de film de la table de base de données de films. L'expression Private. MovieSet.ToList() renvoie une liste de tous les enregistrements de film de la table de base de données de films.

La liste des films est passée à l'affichage. Tout ce qui est passé à la méthode View() obtient passé à l'affichage sous forme de données de la vue.

Listing 2-Controllers/HomeController.cs (méthode modifiée 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 méthode Index() retourne une vue nommée Index. Nous avons besoin de créer ce point de vue pour afficher la liste des enregistrements de base de données de film. Procédez comme suit :

Vous devez construire votre projet (sélectionnez l'option de menu créer, générer la Solution) avant d'ouvrir la boîte de dialogue Ajouter une vue , ou aucuns classes n'apparaîtra dans la liste déroulante de la classe de données d'affichage .

1. Faites un clic droit de la méthode Index() dans l'éditeur de code, puis sélectionnez l'option de menu Ajouter une vue (voir Figure 9).

2.

Cette page a été utile ?

vous pensez.

Oui

Non

Vos commentaires sur ce contenu est important. Faites-nous savoir ce que

Create a Movie Database Application in 15 Minutes with ASP.NET

http://www.asp.net/mvc/overview/older-versions-1/movie-database/cre

our créer le nouveau afficher (voir Figure 10). Après

our créer le nouveau afficher (voir Figure 10).

Après avoir terminé ces étapes, une nouvelle vue appelée Index.aspx est ajoutée au dossier Views\Home. Le contenu de la vue Index est inclus dans le Listing 3.

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 contrôleur (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: création d'un nouvel affichage avec la boîte 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="Syst
<%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="Syst
<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
Cette page a été utile ?
Vos commentaires sur ce contenu est important. Faites-nous savoir ce que
vous pensez.
Oui
Non

Create a Movie Database Application in 15 Minutes with ASP.NET

http://www.asp.net/mvc/overview/older-versions-1/movie-database/cre

<tr> <td> </td> <td> ased

<tr>

<td>

</td>

<td>

ased

</th>

</tr>

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

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

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

<%= 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 ?

vous pensez.

Oui

Non

Vos commentaires sur ce contenu est important. Faites-nous savoir ce que

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>

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 données de films dans un tableau HTML. La vue contient une boucle foreach qui effectue une itération dans chaque film représenté par la propriété ViewData.Model. Si vous exécutez votre application en appuyant sur la touche F5, puis vous verrez la page web à la Figure 11.

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) )

Création de nouveaux enregistrements de base de données

La vue Index que nous avons créé dans la section précédente inclut un lien pour la création de nouveaux enregistrements de base de données. Allons-y et implémentez le code et créer la vue nécessaires à la création de nouveaux enregistrements de base de données de film.

Le contrôleur d'accueil contient deux méthodes nommées Create(). La première méthode Create() n'a aucun paramètre. Cette surcharge de la méthode Create() est utilisée pour afficher le formulaire HTML pour créer un nouvel enregistrement de base de données de film.

La deuxième méthode Create() a un paramètre FormCollection. Cette surcharge de la méthode Create() est appelée lorsque le formulaire HTML pour la création d'un nouveau film est publié sur le serveur. Notez que cette seconde méthode Create() a un attribut AcceptVerbs qui empêche la méthode sauf si une opération HTTP POST.

Cette deuxième méthode Create() a été modifiée dans la mise à jour classe HomeController dans Listing 4. La nouvelle version de la méthode Create() accepte un paramètre de film et contient la logique d'insertion d'un nouveau film dans la table de base de données de films.

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

Listing 4-Controllers\HomeController.cs (mis à jour le méthode Create)

//

// GET: /Home/Create

public ActionResult Create()

Cette page a été utile ?

vous pensez.

Oui

Non

Vos commentaires sur ce contenu est important. Faites-nous savoir ce que

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");

}

(); return RedirectToAction ("Index"); } Visual Studio, il est facile de créer le formulaire de

Visual Studio, il est facile de créer le formulaire de création d'une nouvelle base de données de film enregistrer (voir Figure 12). Procédez comme suit :

1. Faites un clic droit de la méthode Create() dans l'éditeur de code, puis sélectionnez l'option de menu Ajouter une vue.

2. Vérifiez que la case à cocher créer un fortement typé vue est activée.

3. Dans la liste déroulante contenu de la vue , sélectionnez la valeur créer.

4. Dans la classe de données d'affichage de la liste déroulante, sélectionnez la valeur MovieApp.Models.Movie.

5. Cliquez sur le bouton Ajouter pour créer le nouvel affichage.

sur le bouton Ajouter pour créer 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 génère automatiquement des avis dans la liste 5. Cette vue contient un formulaire HTML qui contient les champs qui correspondent à chacune des propriétés de la classe de film.

La liste 5 – Views\Home\Create.aspx

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

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

Cette page a été utile ?

vous pensez.

Oui

Non

Vos commentaires sur ce contenu est important. Faites-nous savoir ce que

Create a Movie Database Application in 15 Minutes with ASP.NET

http://www.asp.net/mvc/overview/older-versions-1/movie-database/cre

C e t t e p a g e a é t é u t

Cette page a été utile ?

vous pensez.

Oui

Non

<asp: on en ="Content2" ContentPlaceHolderID="MainContent" runat="server">

<h2>Create</h2>

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

<% 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>

Vos commentaires sur ce contenu est important. Faites-nous savoir ce que

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>

%> </div> </asp:Content> Le formulaire HTML généré par la boîte de dialogue

Le formulaire HTML généré par la boîte de dialogue Ajouter une vue génère 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 sécurité.

Après avoir ajouté la vue de la création, vous pouvez ajouter de nouveaux enregistrements de film à la base de données. Exécutez votre application en appuyant sur la touche F5, puis cliquez sur le lien créer nouveau pour voir le formulaire à la Figure 13. Si vous remplissez et soumettez le formulaire, un nouveau record de base de données de film est créé.

Notez que vous obtenez la validation du formulaire automatiquement. Si vous négligez 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.

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: création d'un nouvel enregistrement de base de données 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 données existants

Dans les sections précédentes, nous avons discuté de comment vous pouvez énumérer et créer de nouveaux enregistrements de base de données. Dans cette dernière section, nous discutons comment vous pouvez modifier des enregistrements de base de données existants.

Tout d'abord, nous devons générer le formulaire de modification. Cette étape est facile étant donné que Visual Studio génère le formulaire de modification pour nous automatiquement. Ouvrez la classe HomeController.cs dans l'éditeur de code de Visual Studio et procédez comme suit :

1. Faites un clic droit de la méthode Edit() dans l'éditeur de code, puis sélectionnez l'option de menu Ajouter une vue (voir Figure 14).

2. Cochez la case à cocher créer une vue fortement typée.

3. D

l

li t

l

t

t

d

l

él

ti

l

l

Edit

Cette page a été utile ?

vous pensez.

Oui

Non

Vos commentaires sur ce contenu est important. Faites-nous savoir ce que

Create a Movie Database Application in 15 Minutes with ASP.NET

http://www.asp.net/mvc/overview/older-versions-1/movie-database/cre

nouvelle vue appelée Edit.aspx dans le dossier Views\Home.

nouvelle vue appelée Edit.aspx dans le dossier Views\Home. Cette vue contient un formulaire HTML pour modifier un enregistrement de film.

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 propriété Id de film. Parce que vous ne voulez pas modifier la valeur de la propriété Id de personnes, vous devez supprimer ce champ de formulaire.

Enfin, nous devons modifier le contrôleur de la maison afin qu'il supporte l'édition un enregistrement de base de données. La classe HomeController mise à jour figure dans le Listing 6.

Listing 6 – Controllers\HomeController.cs (méthodes 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 ?

vous pensez.

Oui

Non

Vos commentaires sur ce contenu est important. Faites-nous savoir ce que

Create a Movie Database Application in 15 Minutes with ASP.NET

http://www.asp.net/mvc/overview/older-versions-1/movie-database/cre

lid)

return View(originalMovie);

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

_db.SaveChanges();

return RedirectToAction("Index");

}

(); return RedirectToAction ("Index"); } Dans le Listing 6, j'ai ajouté une logique

Dans le Listing 6, j'ai ajouté une logique supplémentaire pour les deux surcharges de la méthode Edit(). La première méthode Edit() renvoie l'enregistrement de base de données de film qui correspond au paramètre Id passé à la méthode. La deuxième surcharge effectue les mises à jour d'un enregistrement de film dans la base de données.

Notez que vous devez récupérer le film original et appelez ensuite ApplyPropertyChanges(), pour mettre à jour la séquence existante dans la base de données.

Résumé

Le but de ce tutoriel est de vous donner une idée de l'expérience de la création d'une application ASP.NET MVC. J'espère que vous avez découvert que construire un MVC ASP.NET application web est très similaire à l'expérience de la création d'une application Pages ASP ou ASP.NET.

Dans ce tutoriel, nous avons examiné les caractéristiques de base de plus de l'infrastructure ASP.NET MVC. Dans les futurs tutoriels, nous plonger plus profondément dans des sujets tels que les contrôleurs, actions du contrôleur, vues, examiner les données et programmes d'assistance HTML.

Cet article a été initialement créé le 27 janvier 2009

Informations de l'auteur

Stephen

Walther

Stephen Walther – Stephen Walther participe dès le début avec ASP.NET. Sa société de formation, les AspWorkshops.com et les superexperttraining.com, a effectué la première classe de formation sur ASP.NET. Il enseigne également régulièrement sur ASP.NET et il est un Microsoft MVP ASP.NET.

Commentaires

(51)

Cette page a été utile ?

vous pensez.

Oui

Non

Vos commentaires sur ce contenu est important. Faites-nous savoir ce que