Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
von Tom FitzMacken
In dieser Lernprogrammreihe werden grundlegende Aspekte der Verwendung der Modellbindung mit einem ASP.NET Web Forms-Projekt veranschaulicht. Die Modellbindung macht die Dateninteraktion einfacher als das Behandeln von Datenquellenobjekten (z. B. ObjectDataSource oder SqlDataSource). Diese Reihe beginnt mit Einführungsmaterial und wechselt zu komplexeren Konzepten in späteren Lernprogrammen.
In diesem Lernprogramm wird gezeigt, wie Sie einen Wert in der Abfragezeichenfolge übergeben und diesen Wert zum Abrufen von Daten über die Modellbindung verwenden.
Dieses Lernprogramm basiert auf dem Projekt, das in den früheren Teilen der Reihe erstellt wurde.
Sie können das vollständige Projekt in C# oder VB herunterladen . Der herunterladbare Code funktioniert entweder mit Visual Studio 2012 oder Visual Studio 2013. Sie verwendet die Visual Studio 2012-Vorlage, die sich geringfügig von der visual Studio 2013-Vorlage unterscheidet, die in diesem Lernprogramm gezeigt wird.
Was Sie erstellen werden
In diesem Tutorial gehen Sie wie folgt vor:
- Eine neue Seite hinzufügen, um die eingeschriebenen Kurse eines Studenten anzuzeigen.
- Abrufen der registrierten Kurse für den ausgewählten Kursteilnehmer basierend auf einem Wert in der Abfragezeichenfolge
- Einen Link mit einem Abfrageparameter von der Rasteransicht auf die neue Seite hinzufügen
Die Schritte in diesem Lernprogramm sind relativ ähnlich wie im vorherigen Lernprogramm , um die angezeigten Kursteilnehmer basierend auf der Benutzerauswahl in einer Dropdownliste zu filtern. In diesem Lernprogramm haben Sie das Control-Attribut in der Select-Methode verwendet, um anzugeben, dass der Parameterwert aus einem Steuerelement stammt. In diesem Lernprogramm verwenden Sie das QueryString-Attribut in der Select-Methode, um anzugeben, dass der Parameterwert aus der Abfragezeichenfolge stammt.
Hinzufügen einer neuen Seite zum Anzeigen der Kurse eines Kursteilnehmers
Fügen Sie ein neues Webformular hinzu, das die Gestaltungsvorlage "Site.master" verwendet, und nennen Sie die Seite "Kurse".
Fügen Sie in der Datei Courses.aspx eine Rasteransicht hinzu, um die Kurse für den ausgewählten Kursteilnehmer anzuzeigen.
<asp:Content ID="Content1" ContentPlaceHolderID="MainContent" runat="server">
<asp:GridView runat="server" ID="coursesGrid"
ItemType="ContosoUniversityModelBinding.Models.Enrollment"
SelectMethod="coursesGrid_GetData" AutoGenerateColumns="false">
<Columns>
<asp:BoundField HeaderText="Title" DataField="Course.Title" />
<asp:BoundField HeaderText="Credits" DataField="Course.Credits" />
<asp:BoundField HeaderText="Grade" DataField="Grade" />
</Columns>
<EmptyDataTemplate>
<asp:Label Text="No Enrolled Courses" runat="server" />
</EmptyDataTemplate>
</asp:GridView>
</asp:Content>
Definieren Sie die Select-Methode
In Courses.aspx.cs fügen Sie die Select-Methode mit dem Namen hinzu, den Sie in der SelectMethod-Eigenschaft der Rasteransicht angegeben haben. In dieser Methode definieren Sie die Abfrage zum Abrufen der Kurse eines Kursteilnehmers und geben an, dass der Parameter aus einem Abfragezeichenfolgenwert mit demselben Namen wie der Parameter stammt.
Zuerst müssen Sie die folgenden using-Anweisungen hinzufügen.
using ContosoUniversityModelBinding.Models;
using System.Web.ModelBinding;
using System.Data.Entity;
Fügen Sie dann den folgenden Code zum Courses.aspx.cs hinzu:
public IQueryable<Enrollment> coursesGrid_GetData([QueryString] int? studentID)
{
SchoolContext db = new SchoolContext();
var query = db.Enrollments.Include(e => e.Course)
.Where(e => e.StudentID == studentID);
return query;
}
Das QueryString-Attribut bedeutet, dass dem Parameter in dieser Methode automatisch ein Abfragezeichenfolgenwert namens StudentID zugewiesen wird.
Hyperlink mit Abfragezeichenfolgenwert hinzufügen
In der Rasteransicht auf Students.aspx fügen Sie ein Linkfeld hinzu, das mit Ihrer neuen Seite "Kurse" verknüpft ist. Der Link enthält einen Abfragewert mit der ID des Studenten.
Fügen Sie in Students.aspx das folgende Feld zu den Rasteransichtsspalten direkt unterhalb des Felds für "Gesamtguthaben" hinzu.
<asp:TemplateField HeaderText="Total Credits">
<ItemTemplate>
<asp:Label Text="<%# Item.Enrollments.Sum(en => en.Course.Credits) %>"
runat="server" />
</ItemTemplate>
</asp:TemplateField>
<asp:HyperLinkField Text="Courses" DataNavigateUrlFormatString="~/Courses.aspx?StudentID={0}"
DataNavigateUrlFields="StudentID" />
Führen Sie die Anwendung aus, und beachten Sie, dass die Rasteransicht jetzt den Link "Kurse" enthält.
Wenn Sie auf einen der Links klicken, werden die registrierten Kurse des Kursteilnehmers angezeigt.
Fazit
In diesem Tutorial haben Sie einen Link mit einem Abfrageparameter hinzugefügt. Sie haben diesen Abfragezeichenfolgenwert für den Parameterwert in der Select-Methode verwendet.
Im nächsten Lernprogramm verschieben Sie den Code aus den CodeBehind-Dateien in eine Geschäftslogikebene und eine Datenzugriffsschicht.