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 Scott Hanselman
Dies ist ein Anfängertutorial, in dem die Grundlagen der ASP.NET MVC vorgestellt werden. Sie erstellen eine einfache Webanwendung, die Lese- und Schreibvorgänge aus einer Datenbank ermöglicht. Besuchen Sie das ASP.NET MVC Learning Center , um weitere ASP.NET MVC-Tutorials und -Beispiele zu finden.
In diesem Abschnitt erstellen wir eine neue MoviesController-Klasse und schreiben Code, der unsere Movie-Daten abruft und mithilfe einer Ansichtsvorlage wieder im Browser anzeigt.
Klicken Sie mit der rechten Maustaste auf den Ordner Controller, und erstellen Sie einen neuen MoviesController.
Dadurch wird eine neue Datei "MoviesController.cs" unter dem Ordner "\Controller" in unserem Projekt erstellt. Aktualisieren Wir den MovieController, um die Liste der Filme aus unserer neu aufgefüllten Datenbank abzurufen.
using System;
using System.Linq;
using System.Web.Mvc;
using Movies.Models;
namespace Movies.Controllers
{
public class MoviesController : Controller
{
MoviesEntities db = new MoviesEntities();
public ActionResult Index()
{
var movies = from m in db.Movies
where m.ReleaseDate > new DateTime(1984, 6, 1)
select m;
return View(movies.ToList());
}
}
}
Wir führen eine LINQ-Abfrage durch, sodass wir nur Filme abrufen, die nach dem Sommer 1984 veröffentlicht wurden. Wir benötigen eine Ansichtsvorlage, um diese Liste der Filme wieder zu rendern. Klicken Sie also mit der rechten Maustaste auf die Methode, und wählen Sie Ansicht hinzufügen aus, um sie zu erstellen.
Im Dialogfeld Ansicht hinzufügen geben wir an, dass wir eine List<Movies.Models.Movie> an die Vorlage Ansicht übergeben. Im Gegensatz zu den vorherigen Zeiten haben wir das Dialogfeld Ansicht hinzufügen verwendet und uns für die Erstellung einer "leeren" Vorlage entschieden, dieses Mal wird angegeben, dass Visual Studio automatisch eine Ansichtsvorlage für uns mit einigen Standardinhalten "gerüstet". Dazu wählen Sie im Dropdownmenü "Inhalt anzeigen" das Element "Liste" aus.
Denken Sie daran, wenn Sie eine neue Klasse erstellt haben, müssen Sie Ihre Anwendung kompilieren, damit sie im Dialogfeld Ansicht hinzufügen angezeigt wird.
Klicken Sie auf Hinzufügen, und das System generiert automatisch den Code für eine Ansicht für uns, die unsere Liste der Filme anzeigt. Dies ist ein guter Zeitpunkt, um die <h2-Überschrift> in etwas wie "Meine Filmliste" zu ändern, wie wir es zuvor mit der Hallo Welt-Ansicht getan haben.
Führen Sie Ihre Anwendung aus, und besuchen Sie /Movies in der Adressleiste. Nun haben wir Daten aus der Datenbank mithilfe einer einfachen Abfrage innerhalb des Controllers abgerufen und die Daten an eine Ansicht zurückgegeben, die über Filme informiert ist. Diese Ansicht durchläuft dann die Liste der Filme und erstellt eine Tabelle mit Daten für uns.
Wir implementieren die Funktionen Bearbeiten, Details und Löschen mit dieser Anwendung nicht. Daher benötigen wir nicht die Standardlinks, die die Gerüstvorlage für uns erstellt hat. Öffnen Sie die Datei /Movies/Index.aspx, und entfernen Sie sie.
Im Folgenden finden Sie den Quellcode, wie unsere aktualisierte Ansichtsvorlage aussehen sollte, sobald wir diese Änderungen vorgenommen haben:
<%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage<IEnumerable<Movies.Models.Movie>>" %>
<asp:Content ID="Content1" ContentPlaceHolderID="TitleContent" runat="server">
Movie List
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server">
<h2>My Movie List</h2>
<table>
<tr>
<th>Title</th>
<th>ReleaseDate</th>
<th>Genre</th>
<th>Rating</th>
<th>Price</th>
</tr>
<% foreach (var item in Model)
{ %>
<tr>
<td><%: item.Title %></td>
<td><%: String.Format("{0:g}", item.ReleaseDate) %></td>
<td><%: item.Genre %></td>
<td><%: item.Rating %></td>
<td><%: String.Format("{0:F}", item.Price) %></td>
</tr>
<% } %>
</table>
<p>
<%: Html.ActionLink("Create New", "Create") %>
</p>
</asp:Content>
Es werden Links erstellt, die wir nicht benötigen, sodass wir sie für dieses Beispiel löschen. Wir behalten jedoch unseren Link Neu erstellen bei, da dies der nächste ist! So sieht unsere App aus, wenn diese Spalte entfernt wurde.
Wir haben jetzt eine einfache Auflistung unserer Filmdaten. Wenn wir jedoch auf den Link "Neu erstellen" klicken, wird eine Fehlermeldung angezeigt, da er nicht eingebunden ist. Implementieren Wir eine Create Action-Methode und ermöglichen es einem Benutzer, neue Filme in unserer Datenbank einzugeben.