ASP.NET Dynamic Data-Infrastruktur

Aktualisiert: November 2007

In diesem Thema werden der Aufbau von ASP.NET Dynamic Data-Websites sowie die standardmäßig erstellten Ordner und Dateien vorgestellt.

Sie können in Visual Studio 2008 mit der Vorlage Dynamic Data-Website eine ASP.NET Dynamic Data-Website erstellen. Durch diese Vorlage werden die Benutzersteuerelemente, Seitenvorlagen und ASP.NET-Webdateien generiert, anhand derer wiederum von Dynamic Data eine Oberfläche zur Arbeit mit Daten erstellt wird.

Datenkontextklasse

Webanwendungen für Dynamic Data erfordern ein MetaModel-Objekt und einen registrierten Datenkontext. Bei dem Datenkontext kann es sich um eine LINQ to SQL-Klasse (eine Instanz der System.Data.Linq.DataContext-Klasse) oder eine ADO.NET Entity Framework-Klasse handeln. Die Datenkontextklasse muss sich im Ordner App_Code im Anwendungsstamm befinden. Weitere Informationen hierzu finden Sie unter Übersicht über das ASP.NET Dynamic Data-Modell.

Ordner und Dateien

In der folgenden Tabelle werden die Dateien und Ordner beschrieben, die auf der Stammebene einer ASP.NET Dynamic Data-Website angelegt werden.

Datei oder Ordner

Beschreibung

Dynamic Data

Enthält Ordner für benutzerdefinierte Steuerelemente und Seiten, die Daten anzeigen. Weitere Informationen zu den Unterordnern im Ordner Dynamic Data finden Sie weiter unten in diesem Thema unter Struktur des Ordners DynamicData.

Default.aspx

Eine ASP.NET-Seite mit den in der MetaModel-Instanz registrierten Tabellen und Sichten. Jeder Tabellenname wird als HyperLink-Steuerelement gerendert, das den Inhalt der ausgewählten Tabelle anzeigt.

Global.asax

Enthält eine Methode zum Registrieren einer Instanz der MetaModel-Klasse und fügt dem RouteCollection-Objekt Routen hinzu. Weitere Informationen finden Sie weiter unten in diesem Thema unter Websitekonfiguration.

Site.css

Ein Cascading Stylesheet, das von Dynamic Data-Seitenvorlagen und -Steuerelementen verwendet wird.

Site.master

Die Masterseite für die Website. Die Masterseite wird von der Datei Default.aspx und den Dynamic Data-Seitenvorlagen verwendet.

Web.config

Die Konfigurationsdatei für die Website. Weitere Informationen finden Sie weiter unten in diesem Thema unter Websitekonfiguration.

Websitekonfiguration

In der Regel umfassen Dynamic Data-Websites für ASP.NET-Websites typische Dateien. Die Dateien enthalten jedoch für Dynamic Data spezifische Daten bzw. spezifischen Code. Dieser Abschnitt bietet Informationen über die von Dynamic Data verwendeten Dateien.

Datei "Global.asax"

Bei Dynamic Data-Websites enthält die Datei Global.asax einen Handler für das Application_Start-Ereignis, das beim Start der Webanwendung ausgelöst wird. Im Handler wird die RegisterRoutes-Methode aufgerufen. Die RegisterRoutes-Methode enthält eine MetaModel-Instanz sowie einen auskommentierten Aufruf an RegisterContext. Um Dynamic Data-Vorgänge zu aktivieren, müssen Sie die RegisterContext-Methode aktivieren und einen gültigen Datenkontext, etwa eine DataContext-Instanz oder einen ADO.NET Entity Framework-Kontext, an sie übergeben.

Standardmäßig ruft die Datei Global.asax bei Dynamic Data-Websites die Add(Type)-Methode auf, um für die Seiten List.aspx, Details.aspx, Edit.aspx und Insert.aspx ein Routing für jede Aktion hinzuzufügen.

Seitenvorlage "ListDetails.aspx"

Eine Seitenvorlage ist eine ASPX-Datei mit Steuerelementen, mit denen von Dynamic Data eine Oberfläche zum Anzeigen und Bearbeiten von Daten erstellt werden kann. Durch die in der Datei Global.asax festgelegten Routen wird vorgegeben, welche Seitenvorlagen von Dynamic Data für die Aktionen Auflisten, Details, Bearbeiten und Einfügen verwendet werden. Weitere Informationen hierzu finden Sie unter Übersicht über den ASP.NET Dynamic Data-Gerüstbau und Seitenvorlagen.

Sie können das Routing zu den Seitenvorlagen ändern, indem Sie in der Datei Global.asax Routendefinitionen hinzufügen bzw. löschen. (Die Datei Global.asax enthält vordefinierte, allerdings auskommentierte alternative Routen.) Weitere Informationen finden Sie in den Kommentaren in der Datei Global.asax.

Damit alle Tabellen mit Dynamic Data angezeigt werden können, legen Sie für die ScaffoldAllTables-Eigenschaft des ContextConfiguration-Objekts die Einstellung true fest. Alternativ können Sie auch in der partiellen Klasse, die die anzuzeigende Tabelle repräsentiert, das ScaffoldTableAttribute-Attribut auf true festlegen. Mit dem ScaffoldTableAttribute-Attribut können Sie Tabellen selektiv mit Dynamic Data anzeigen.

Datei "Site.master"

Die Datei Site.master ist die Masterseite der Dynamic Data-Website. Sie wird von allen Dynamic Data-Seitenvorlagen verwendet. Die Datei Site.master enthält ein System.Web.UI.ScriptManager-Steuerelement, dessen EnablePartialRendering-Eigenschaft auf true festgelegt ist. Weitere Informationen hierzu finden Sie unter Übersicht über ASP.NET-Masterseiten.

  • Hinweis: Wenn die EnablePartialRendering-Eigenschaft auf true festgelegt ist, führen alle vom Datenbankserver ausgegebenen Ausnahmen zu einem Laufzeitfehler im Browser. Wenn Sie zum Beispiel versuchen, eine Zeile zu aktualisieren, die eine in der Datenbank definierte Spaltenbeschränkung aufweist, und die neuen Daten gegen diese Beschränkung verstoßen, wird im Browser ein Laufzeitfehler angezeigt. Wenn die EnablePartialRendering-Eigenschaft auf false festgelegt ist, wird im Browser keine ausführliche Meldung zur Ausnahme angezeigt. Im Browser ist stattdessen ein HTTP 500-Fehler zu sehen, der darauf hinweist, dass bei der Serververarbeitung ein Problem aufgetreten ist. Weitere Informationen hierzu finden Sie unter Hinzufügen von AJAX- und Clientfunktionen.

Datei "Web.config"

Durch die Visual Studio-Vorlage Dynamic Data-Website wird die Datei Web.config generiert, die für Dynamic Data spezifische Elemente sowie bei allen ASP.NET-Websites verwendete Elemente enthält. Die folgenden DLL-Dateien werden dem assemblies-Abschnitt hinzugefügt:

  • System.Web.Abstractions

  • System.Web.Routing

  • System.ComponentModel.DataAnnotations

  • System.Web.DynamicData

  • System.Data.Linq

Das Tagpräfix "asp:" wird für den System.Web.DynamicData-Namespace und die System.Web.DynamicData-Assembly registriert.

Die folgenden Steuerelemente aus der System.Web.DynamicData-Assembly werden von den Steuerelementen im Ordner FieldTemplates verwendet.

Das URL-Routingmodul UrlRoutingModule wird dem httpModules-Element und dem system.webServer-Abschnitt hinzugefügt.

Struktur des Ordners DynamicData

In der folgenden Tabelle werden die Unterordner im Ordner DynamicData beschrieben.

Datei oder Ordner

Beschreibung

Content

Enthält standardmäßig den Ordner Images sowie zwei Steuerelemente (GridViewPager.ascx und FilterUserControl.ascx). Der Ordner Images enthält Bilddateien, die als Symbole für das Pager-Steuerelement verwendet werden. FilterUserControl.ascx ist ein ASP.NET-Benutzersteuerelement, mit dem Fremdschlüsselspalten gefiltert werden. Weitere Informationen finden Sie in diesem Dokument im Abschnitt zu den Dynamic Data-Webserversteuerelementen.

CustomPages

Containerordner für benutzerdefinierte Seitenvorlagen. Mit benutzerdefinierten Seitenvorlagen können die unter DynamicData\PageTemplates definierten Seitenvorlagen außer Kraft gesetzt werden. Falls der Datenkontext beispielsweise eine Tabelle mit dem Namen Products enthält, können Sie den Ordner DynamicData\CustomPages\Produkte anlegen und dem neuen Ordner ASPX-Seiten hinzufügen, mit denen Produktdaten angezeigt werden. Sie können hierfür die Seiten einfach aus dem Ordner DynamicData\PageTemplates in den neuen Ordner DynamicData\CustomPages\Produkte kopieren und die Vorlagen dann bearbeiten. Weitere Informationen zu benutzerdefinierten Seitenvorlagen finden Sie unter Gewusst wie: Anpassen des Layouts einer einzelnen Tabelle mit einer benutzerdefinierten Seitenvorlage.

FieldTemplates

Enthält die Dynamic Data-Benutzersteuerelemente, die Datentypen aus dem Datenmodell zugeordnet werden. Weitere Informationen finden Sie unter Übersicht über ASP.NET Dynamic Data-Feldvorlagen und unter Übersicht über ASP.NET Dynamic Data-Feldvorlagen.

PageTemplates

Containerordner für Seitenvorlagen, mit denen eine Oberfläche zum Anzeigen und Bearbeiten von Daten erzeugt wird. Weitere Informationen hierzu finden Sie unter Übersicht über den ASP.NET Dynamic Data-Gerüstbau und Seitenvorlagen.

GridViewPager-Steuerelement

Die Datei GridViewPager.ascx ist ein von WebControl abgeleitetes Benutzersteuerelement. Es verbessert das Paging bei Tabellen mit mehreren Datenseiten. Das GridViewPager-Benutzersteuerelement wird in den Seitenvorlagen List.aspx und ListDetails.aspx verwendet.

FilterUserControl-Steuerelement

Die Datei FilterUserControl.ascx ist ein ASP.NET-Benutzersteuerelement, mit dem Fremdschlüsselspalten und boolesche Spalten gefiltert werden. Das FilterUserControl-Steuerelement wird in den Seitenvorlagen List.aspx und ListDetails.aspx verwendet. Es wird einmal pro Fremdschlüsselspalte und pro boolescher Spalte in der Tabelle initialisiert.

Beispielsweise können Sie auf einer Dynamic Data-Website, die die AdventureWorksLT-Datenbank verwendet, eine Seite mit Daten aus der Tabelle Product anfordern. Die Tabelle Product enthält die Fremdschlüsselspalte ProductCategoryID, die auf die Tabelle ProductCategory verweist. Dynamic Data leitet daraus ab, dass der Fremdschlüssel ProductCategoryID dem Feld Name in der Tabelle ProductCategory entspricht. Anschließend wird das Feld ProductCategoryID durch das Feld Name aus der Tabelle ProductCategory ersetzt.

Wenn die Tabelle Product der AdventureWorksLT-Datenbank angezeigt wird, wird mit FilterUserControl ein DropDownList-Steuerelement für den Fremdschlüssel ProductCategoryID erzeugt, indem der abgeleitete Name des Felds ProductCategoryID verwendet wird. Sie können eine Produktkategorie auswählen, wenn nur die Zeilen der Tabelle, die die gewählte Produktkategorie enthalten, angezeigt werden sollen. Wenn Sie etwa die Kategorie Mountain Bikes auswählen, werden nur die Zeilen angezeigt, die die Produktkategorie Mountain Bikes aufweisen.

Das FilterUserControl-Steuerelement wird zudem jeder booleschen Spalte einer Tabelle hinzugefügt. Bei booleschen Spalten können Sie alle Felder auswählen oder nur die, die mit true oder false gekennzeichnet sind.

Einschränkungen beim FilterUserControl-Steuerelement

Das FilterUserControl-Steuerelement eignet sich am besten für boolesche Spalten und Fremdschlüsselspalten mit relativ wenigen Zeilen in der referenzierten Tabelle.

Siehe auch

Konzepte

Übersicht über ASP.NET Dynamic Data

Übersicht über das ASP.NET Dynamic Data-Modell

Übersicht über den ASP.NET Dynamic Data-Gerüstbau und Seitenvorlagen

Weitere Ressourcen

LINQ to SQL

ADO.NET Entity Framework