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 Rick Anderson
MVC steht für Model-View-Controller. MVC ist ein Muster für die Entwicklung von Anwendungen, die gut gestaltet, testbar und einfach zu verwalten sind. MVC-basierte Anwendungen enthalten:
- M-Odels : Klassen, die die Daten der Anwendung darstellen und Validierungslogik verwenden, um Geschäftsregeln für diese Daten zu erzwingen.
- Vews : Vorlagendateien, die Ihre Anwendung zum dynamischen Generieren von HTML-Antworten verwendet.
- C-Ontroller: Klassen, die eingehende Browseranforderungen verarbeiten, Modelldaten abrufen und dann Ansichtsvorlagen angeben, die eine Antwort auf den Browser zurückgeben.
Wir behandeln alle diese Konzepte in dieser Lernprogrammreihe und zeigen Ihnen, wie Sie diese verwenden können, um eine Anwendung zu erstellen.
Beginnen wir mit dem Erstellen einer Controllerklasse. Klicken Sie in Projektmappen-Explorer mit der rechten Maustaste auf den Ordner "Controller", und wählen Sie dann "Controller hinzufügen" aus.
Nennen Sie den neuen Controller "HelloWorldController". Verlassen Sie die Standardvorlage als leeren MVC-Controller , und klicken Sie auf "Hinzufügen".
Beachten Sie im Lösungs-Explorer, dass eine neue Datei HelloWorldController.cs erstellt wurde. Die Datei ist in der IDE geöffnet.
Ersetzen Sie den Inhalt der Datei durch den folgenden Code.
using System.Web;
using System.Web.Mvc;
namespace MvcMovie.Controllers
{
public class HelloWorldController : Controller
{
//
// GET: /HelloWorld/
public string Index()
{
return "This is my <b>default</b> action...";
}
//
// GET: /HelloWorld/Welcome/
public string Welcome()
{
return "This is the Welcome action method...";
}
}
}
Die Controllermethoden geben eine HTML-Zeichenfolge als Beispiel zurück. Der Controller wird benannt HelloWorldController , und die erste oben genannte Methode wird benannt Index. Rufen wir sie aus einem Browser auf. Führen Sie die Anwendung aus (drücken Sie F5 oder STRG+F5). Fügen Sie im Browser "HelloWorld" an den Pfad in der Adressleiste an. (In der nachstehenden Abbildung ist es zum Beispiel http://localhost:1234/HelloWorld..) Die Seite im Browser wird wie der folgende Screenshot aussehen. In der obigen Methode hat der Code eine Zeichenfolge direkt zurückgegeben. Sie haben dem System gesagt, es soll nur etwas HTML zurückgeben, und das hat es getan!
ASP.NET MVC ruft je nach eingehender URL unterschiedliche Controllerklassen (und verschiedene Aktionsmethoden darin) auf. Die standardmäßige URL-Routinglogik, die von ASP.NET MVC verwendet wird, verwendet ein Format wie das folgende, um zu bestimmen, welcher Code aufgerufen werden soll:
/[Controller]/[ActionName]/[Parameters]
Der erste Teil der URL bestimmt die auszuführende Controllerklasse. Also ordnet /HelloWorld der HelloWorldController Klasse zu. Der zweite Teil der URL bestimmt die Auszuführende Aktionsmethode für die Klasse. Daher würde /HelloWorld/Index dazu führen, dass die Index Methode der HelloWorldController Klasse ausgeführt wird. Beachten Sie, dass wir nur zu /HelloWorld navigieren mussten und die Index Methode standardmäßig verwendet wurde. Dies liegt daran, dass eine benannte Index Methode die Standardmethode ist, die auf einem Controller aufgerufen wird, wenn eine nicht explizit angegeben ist.
Navigieren Sie zu http://localhost:xxxx/HelloWorld/Welcome. Die Welcome-Methode wird ausgeführt und gibt die Zeichenfolge „Dies ist die Welcome-Action-Methode...“ zurück. Die MVC-Standardzuordnung ist /[Controller]/[ActionName]/[Parameters]. Bei dieser URL ist HelloWorld der Controller und Welcome die Aktionsmethode. Sie haben den Teil [Parameters] der URL noch nicht verwendet.
Lassen Sie uns das Beispiel etwas ändern, damit Sie einige Parameterinformationen von der URL an den Controller übergeben können (z. B. /HelloWorld/Welcome?name=Scott&numtimes=4). Ändern Sie Die Welcome Methode so, dass sie zwei Parameter enthält, wie unten dargestellt. Beachten Sie, dass der Code das optionale C#-Parameterfeature verwendet, um anzugeben, dass der numTimes Parameter standardmäßig auf 1 festgelegt werden soll, wenn kein Wert für diesen Parameter übergeben wird.
public string Welcome(string name, int numTimes = 1) {
return HttpUtility.HtmlEncode("Hello " + name + ", NumTimes is: " + numTimes);
}
Führen Sie Ihre Anwendung aus, und navigieren Sie zur Beispiel-URL (http://localhost:xxxx/HelloWorld/Welcome?name=Scott&numtimes=4). Sie können unterschiedliche Werte für name und numtimes in der URL ausprobieren. Das ASP.NET MVC-Modellbindungssystem ordnet die benannten Parameter aus der Abfragezeichenfolge in der Adressleiste automatisch Parametern in Ihrer Methode zu.
In beiden Beispielen hat der Controller den "VC"-Teil von MVC übernommen, das heißt, die Aufgaben der Ansicht und des Controllers. Der Controller gibt direkt HTML zurück. Normalerweise möchten Sie nicht, dass Controller HTML direkt zurückgeben, da dies sehr umständlich zu coden ist. Stattdessen verwenden wir in der Regel eine separate Ansichtsvorlagendatei, um die HTML-Antwort zu generieren. Schauen wir uns als Nächstes an, wie wir dies tun können.