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
Hinweis
Eine aktualisierte Version, wenn dieses Tutorial hier mit Visual Studio 2013 verfügbar ist. Das neue Tutorial verwendet ASP.NET MVC 5, der viele Verbesserungen gegenüber diesem Tutorial bietet.
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.
MVC steht für Model, View, Controller. MVC ist ein Muster für die Entwicklung von Anwendungen, sodass jedes Teil eine andere Verantwortung hat.
- Modell: Die Daten Ihrer Anwendung
- Ansichten: Die Vorlagendateien, die Ihre Anwendung zum dynamischen Generieren von HTML-Antworten verwendet.
- Controller: Klassen, die eingehende URL-Anforderungen an die Anwendung behandeln, Modelldaten abrufen und dann Ansichtsvorlagen angeben, die eine Antwort zurück an den Client rendern
Wir behandeln alle diese Konzepte in diesem Tutorial und zeigen Ihnen, wie Sie sie zum Erstellen einer Anwendung verwenden.
Erstellen Sie einen neuen Controller, indem Sie mit der rechten Maustaste auf den Ordner controller in der Lösung Explorer klicken und Controller hinzufügen auswählen.
Nennen Sie Ihren neuen Controller "HelloWorldController", und klicken Sie auf Hinzufügen.
Beachten Sie im Projektmappen-Explorer rechts, dass eine neue Datei mit dem Namen HelloWorldController.cs für Sie erstellt wurde und diese Datei jetzt in der IDE geöffnet wird.
Erstellen Sie zwei neue Methoden, die in Ihrer neuen öffentlichen Klasse HelloWorldController wie diese aussehen. Wir geben als Beispiel eine HTML-Zeichenfolge direkt von unserem Controller zurück.
using System.Web.Mvc;
namespace Movies.Controllers
{
public class HelloWorldController : Controller
{
public string Index()
{
return "This is my default action...";
}
public string Welcome()
{
return "This is the Welcome action method...";
}
}
}
Ihr Controller heißt HelloWorldController, und Ihre neue Methode heißt Index. Führen Sie Ihre Anwendung wie zuvor erneut aus (klicken Sie auf die Wiedergabeschaltfläche, oder drücken Sie F5, um dies zu tun). Nachdem Ihr Browser gestartet wurde, ändern Sie den Pfad in der Adressleiste in http://localhost:xx/HelloWorld die Adresse, wobei xx die von Ihrem Computer ausgewählte Zahl ist. Nun sollte Ihr Browser wie der folgende Screenshot aussehen. In unserer obigen Methode haben wir eine Zeichenfolge zurückgegeben, die an eine Methode namens "Content" übergeben wurde. Wir haben gesagt, dass das System nur HTML zurückgibt, und das hat es getan!
ASP.NET MVC ruft je nach eingehender URL verschiedene Controllerklassen (und unterschiedliche Action-Methoden darin) auf. Die von ASP.NET MVC verwendete Standardzuordnungslogik verwendet ein Format wie dieses, um zu steuern, welcher Code ausgeführt wird:
/[Controller]/[ActionName]/[Parameter]
Der erste Teil der URL bestimmt die auszuführende Controller-Klasse. Daher wird /HelloWorld der HelloWorldController-Klasse zugeordnet. Der zweite Teil der URL bestimmt die Action-Methode für die auszuführende Klasse. Daher würde /HelloWorld/Index dazu führen, dass die Index()-Methode der HelloWorldController-Klasse ausgeführt wird. Beachten Sie, dass wir nur /HelloWorld oben besuchen mussten und die Methode Index impliziert wurde. Dies liegt daran, dass eine Methode mit dem Namen "Index" die Standardmethode ist, die auf einem Controller aufgerufen wird, wenn sie nicht explizit angegeben ist.
Nun besuchen http://localhost:xx/HelloWorld/Welcome. wir Jetzt unsere Willkommensmethode hat ausgeführt und ihre HTML-Zeichenfolge zurückgegeben.
Auch hier gilt /[Controller]/[ActionName]/[Parameters], sodass Controller HelloWorld ist und Welcome in diesem Fall die Methode ist. Parameter haben wir noch nicht durchgeführt.
Lassen Sie uns unser Beispiel ein wenig ändern, sodass wir einige Informationen von der URL an unseren Controller übergeben können, z. B. folgende: /HelloWorld/Welcome?name=Scott&numtimes=4. Ändern Sie Ihre Welcome-Methode so, dass sie zwei Parameter enthält, und aktualisieren Sie sie wie unten. Beachten Sie, dass wir das optionale C#-Parameterfeature verwendet haben, um anzugeben, dass der Parameter numTimes standardmäßig auf 1 festgelegt werden soll, wenn er nicht übergeben wird.
public string Welcome(string name, int numTimes = 1)
{
string message = "Hello " + name + ", NumTimes is: " + numTimes;
return "" + Server.HtmlEncode(message) + "";
}
Führen Sie Ihre Anwendung aus, und ändern http://localhost:xx/HelloWorld/Welcome?name=Scott&numtimes=4 Sie den Wert von Name und Numtimes nach Ihren Wünschen. Das System hat die benannten Parameter aus Ihrer Abfragezeichenfolge in der Adressleiste automatisch Parametern in Ihrer Methode zugeordnet.
In beiden Beispielen hat der Controller die ganze Arbeit ausgeführt und HTML direkt zurückgegeben. Normalerweise möchten wir nicht, dass unsere Controller HTML direkt zurückgeben , da dies am Ende sehr umständlich ist. Stattdessen verwenden wir in der Regel eine separate Ansichtsvorlagendatei, um die HTML-Antwort zu generieren. Sehen wir uns an, wie wir dies tun können. Schließen Sie Ihren Browser, und kehren Sie zur IDE zurück.