Share via


Infrastructure Dynamic Data ASP.NET

Mise à jour : novembre 2007

Cette rubrique décrit la structure d'un site Web Dynamic Data ASP.NET et inclut des informations sur les dossiers et les fichiers créés par défaut.

Vous pouvez créer un site Web Dynamic Data ASP.NET dans Visual Studio 2008 en utilisant le modèle Site Web Dynamic Data. Ce modèle génère les contrôles utilisateur, les modèles de page et les fichiers Web ASP.NET que Dynamic Data utilise pour créer l'interface utilisateur permettant d'utiliser les données.

Classe du contexte de données

Une application Web Dynamic Data requiert un objet MetaModel et un contexte de données enregistré. Le contexte de données peut être soit une classe LINQ to SQL (une instance de la classe System.Data.Linq.DataContext), soit une classe ADO.NET Entity Framework. La classe du contexte de données doit se trouver dans le dossier App_Code à la racine de l'application. Pour plus d'informations, consultez Vue d'ensemble des modèles de données Dynamic Data ASP.NET.

Dossiers et fichiers

Le tableau suivant décrit les fichiers et les dossiers créés au niveau de la racine dans un site Web Dynamic Data ASP.NET.

Fichier ou dossier

Description

Dynamic Data

Contient des dossiers pour les contrôles personnalisés et pour les pages qui affichent des données. Pour plus d'informations sur les sous-dossiers du dossier Dynamic Data, consultez Structure du dossier DynamicData plus loin dans cette rubrique.

Default.aspx

Page ASP.NET qui affiche les tables et les vues enregistrées dans l'instance MetaModel. Chaque nom de table s'affiche sous la forme d'un contrôle HyperLink qui affiche le contenu de la table sélectionnée.

Global.asax

Contient une méthode permettant d'enregistrer une instance de la classe MetaModel et d'ajouter des itinéraires à l'objet RouteCollection. Pour plus d'informations, consultez Configuration du site Web plus loin dans cette rubrique.

Site.css

Feuille de style en cascade utilisée par les contrôles et les modèles de page Dynamic Data.

Site.master

Page maître du site. Les modèles de page Default.aspx et Dynamic Data utilisent la page maître.

Web.config

Fichier de configuration du site. Pour plus d'informations, consultez Configuration du site Web plus loin dans cette rubrique.

Configuration du site Web

Par défaut, un site Web Dynamic Data inclut des fichiers courants dans les sites Web ASP.NET. Toutefois, ces fichiers incluent du code ou des informations spécifiques à Dynamic Data. Cette section fournit des informations sur les fichiers que Dynamic Data utilise.

Fichier Global.asax

Dans un site Web Dynamic Data, le fichier Global.asax contient un gestionnaire pour l'événement Application_Start qui est déclenché lorsque l'application Web démarre. Dans le gestionnaire, la méthode RegisterRoutes est appelée. La méthode RegisterRoutes contient une instance MetaModel et un appel commenté à RegisterContext. Pour activer des opérations Dynamic Data, vous devez activer la méthode RegisterContext et lui passer un contexte de données valide, tel qu'une instance DataContext ou un contexte ADO.NET Entity Framework.

Par défaut, le fichier Global.asax d'un site Web Dynamic Data appelle la méthode Add(Type) afin d'ajouter le routage pour les pages List.aspx, Details.aspx, Edit.aspx et Insert.aspx pour chaque action.

Modèle de page ListDetails.aspx

Un modèle de page est un fichier .aspx qui inclut des contrôles que Dynamic Data peut utiliser pour créer l'interface utilisateur permettant d'afficher et de modifier les données. Les itinéraires définis dans le fichier Global.asax déterminent les modèles de page que Dynamic Data utilise pour exécuter les actions List, Details, Edit et Insert. Pour plus d'informations, consultez Vue d'ensemble des modèles de pages et de la génération de modèles automatique Dynamic Data ASP.NET.

Vous pouvez modifier le routage vers les modèles de page en ajoutant et en supprimant des définitions d'itinéraire dans le fichier Global.asax. (Les autres itinéraires prédéfinis sont inclus dans le fichier Global.asax mais sont mis en commentaires.) Pour plus d'informations, consultez les commentaires dans le fichier Global.asax.

Pour permettre l'affichage de toutes les tables à l'aide de Dynamic Data, affectez true à la propriété ScaffoldAllTables de l'objet ContextConfiguration. Vous pouvez également affecter true à l'attribut ScaffoldTableAttribute dans la classe partielle qui représente la table afficher. L'attribut ScaffoldTableAttribute vous permet d'afficher des tables de manière sélective à l'aide de Dynamic Data.

Fichier Site.master

Le fichier Site.master est la page maître du site Web Dynamic Data. Il est utilisé par tous les modèles de page Dynamic Data. Ce fichier contient un contrôle System.Web.UI.ScriptManager dont la propriété EnablePartialRendering a la valeur true. Pour plus d'informations, consultez Vue d'ensemble des pages maîtres ASP.NET.

  • Remarque   Lorsque la propriété EnablePartialRendering a la valeur true, les exceptions levées par le serveur de base de données provoquent une erreur d'exécution dans le navigateur. Par exemple, si vous essayez de mettre à jour une ligne dont l'une des contraintes de colonne est définie dans la base de données, et que les données de mise à jour violent cette contrainte, le navigateur affiche une erreur d'exécution. Lorsque la propriété EnablePartialRendering a la valeur false, le navigateur n'affiche pas de message d'exception détaillé. À la place, il affiche une erreur HTTP 500 qui indique qu'un problème est survenu pendant le traitement serveur. Pour plus d'informations, consultez Ajout de fonctionnalités AJAX et clientes.

Fichier Web.config

Le modèle Site Web Dynamic Data Visual Studio génère un fichier Web.config qui contient des éléments spécifiques à Dynamic Data, outre ceux utilisés pour tous les sites Web ASP.NET. Dans la section assemblies, les DLL suivantes sont ajoutées :

  • System.Web.Abstractions

  • System.Web.Routing

  • System.ComponentModel.DataAnnotations

  • System.Web.DynamicData

  • System.Data.Linq

Le préfixe de balise "asp:" est enregistré pour l'assembly et l'espace de noms System.Web.DynamicData.

Les contrôles de l'assembly System.Web.DynamicData suivants sont utilisés par les contrôles dans le dossier FieldTemplates.

Le module de routage d'URL UrlRoutingModule est ajouté à l'élément httpModules et à la section system.webServer.

Structure du dossier DynamicData

Le tableau suivant décrit les sous-dossiers du dossier DynamicData.

Fichier ou dossier

Description

Content

Par défaut, contient le dossier Images et deux contrôles (GridViewPager.ascx et FilterUserControl.ascx). Le dossier Images contient des fichiers graphiques utilisés comme icônes pour le contrôle pager. FilterUserControl.ascx est un contrôle utilisateur ASP.NET permettant de filtrer les colonnes clés étrangères. Pour plus d'informations, consultez Contrôles serveur Web Dynamic Data dans ce document.

CustomPages

Dossier conteneur pour les modèles de page personnalisés. Les modèles de page personnalisés permettent de substituer les modèles de page définis dans DynamicData\PageTemplates. Par exemple, si le contexte de données contient une table nommée Products, vous pouvez créer un dossier DynamicData\CustomPages\Products et ajouter des pages .aspx dans le nouveau dossier qui permettent d'afficher les données de cette table. Pour cela, une solution simple consiste à copier les pages du dossier DynamicData\PageTemplates dans le nouveau dossier DynamicData\CustomPages\Products, puis à modifier les modèles. Pour plus d'informations sur les modèles de page personnalisés, consultez Comment : personnaliser la disposition d'une table en utilisant un modèle de page personnalisé.

FieldTemplates

Contient les contrôles utilisateur Dynamic Data qui mappent aux types de données à partir du modèle de données. Pour plus d'informations, consultez Vue d'ensemble des modèles de champs Dynamic Data ASP.NET and Vue d'ensemble des modèles de champs Dynamic Data ASP.NET.

PageTemplates

Dossier conteneur pour les modèles de page qui créent l'interface utilisateur permettant d'afficher et de modifier les données. Pour plus d'informations, consultez Vue d'ensemble des modèles de pages et de la génération de modèles automatique Dynamic Data ASP.NET.

Contrôle GridViewPager

Le fichier GridViewPager.ascx est un contrôle utilisateur qui dérive de WebControl. Il permet d'améliorer la pagination lorsqu'une table contient plusieurs pages de données. Le contrôle utilisateur GridViewPager est utilisé dans les modèles de page List.aspx et ListDetails.aspx.

Contrôle FilterUserControl

Le fichier FilterUserControl.ascx est un contrôle utilisateur ASP.NET qui permet de filtrer les clés étrangères et les colonnes booléennes. Il est utilisé dans les modèles de page List.aspx et ListDetails.aspx. Il est initialisé une fois pour chaque clé étrangère et pour chaque colonne booléenne de la table.

Par exemple, dans un site Web Dynamic Data qui utilise la base de données AdventureWorksLT, vous pouvez demander une page qui affiche des données de la table Product. La table Product contient la colonne clé étrangère ProductCategoryID qui référence la table ProductCategory. Dynamic Data déduit que la clé étrangère ProductCategoryID correspond au champ Name dans la table ProductCategory. Il substitue ensuite le champ Name des tables ProductCategory au champ ProductCategoryID.

Lorsque la table Product de la base de données AdventureWorksLT s'affiche, FilterUserControl permet de créer un contrôle DropDownList pour la clé étrangère ProductCategoryID, en utilisant le nom déduit pour le champ ProductCategoryID. Vous pouvez sélectionner une catégorie de produit afin d'afficher uniquement les lignes de la table qui contiennent la catégorie de produit sélectionnée. Par exemple, si vous sélectionnez « Mountain Bikes », seules les lignes dont la catégorie de produit est « Mountain Bikes » s'affichent.

Un contrôle FilterUserControl est également ajouté pour chaque colonne booléenne d'une table. Pour les colonnes booléennes, vous pouvez sélectionner tous les champs ou uniquement ceux marqués « true » ou « false ».

Limitations du contrôle FilterUserControl

Le contrôle FilterUserControl est surtout utile pour les colonnes booléennes et les colonnes clés étrangères qui ont relativement peu de lignes dans la table référencée.

Voir aussi

Concepts

Vue d'ensemble de Dynamic Data ASP.NET

Vue d'ensemble des modèles de données Dynamic Data ASP.NET

Vue d'ensemble des modèles de pages et de la génération de modèles automatique Dynamic Data ASP.NET

Autres ressources

LINQ to SQL

ADO.NET Entity Framework