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 Stephen Walther
In diesem Tutorial veranschaulicht Stephen Walther, wie Sie einer ASP.NET MVC-Anwendung einen Controller hinzufügen können.
In diesem Tutorial wird erläutert, wie Sie neue ASP.NET MVC-Controller erstellen können. Sie erfahren, wie Sie Controller erstellen, indem Sie die Visual Studio-Menüoption Controller hinzufügen und eine Klassendatei manuell erstellen.
Verwenden der Menüoption "Controller hinzufügen"
Am einfachsten können Sie einen neuen Controller erstellen, indem Sie im Fenster Visual Studio Projektmappen-Explorer mit der rechten Maustaste auf den Ordner Controller klicken und die Menüoption Hinzufügen, Controller auswählen (siehe Abbildung 1). Wenn Sie diese Menüoption auswählen, wird das Dialogfeld Controller hinzufügen geöffnet (siehe Abbildung 2).
Abbildung 01: Hinzufügen eines neuen Controllers(Klicken Sie hier, um das bild in voller Größe anzuzeigen)
Abbildung 02: Dialogfeld "Controller hinzufügen" (Klicken Sie hier, um das bild in voller Größe anzuzeigen)
Beachten Sie, dass der erste Teil des Controllernamens im Dialogfeld Controller hinzufügen hervorgehoben ist. Jeder Controllername muss mit dem Suffix Controller enden. Sie können beispielsweise einen Controller mit dem Namen ProductController , aber keinen Controller mit dem Namen Product erstellen.
Wenn Sie einen Controller erstellen, dem das Suffix Controller fehlt, können Sie den Controller nicht aufrufen. Tun Sie dies nicht - ich habe unzählige Stunden meines Lebens vergeudet, nachdem ich diesen Fehler gemacht hatte.
Eintrag 1: Controller\ProductController.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using System.Web.Mvc.Ajax;
namespace MvcApplication1.Controllers
{
public class ProductController : Controller
{
//
// GET: /Product/
public ActionResult Index()
{
return View();
}
}
}
Sie sollten immer Controller im Ordner Controller erstellen. Andernfalls verstoßen Sie gegen die Konventionen von ASP.NET MVC, und andere Entwickler haben es schwieriger, Ihre Anwendung zu verstehen.
Gerüstbauaktionsmethoden
Wenn Sie einen Controller erstellen, haben Sie die Möglichkeit, die Aktionsmethoden Create, Update und Details automatisch zu generieren (siehe Abbildung 3). Wenn Sie diese Option auswählen, wird die Controllerklasse in Listing 2 generiert.
Abbildung 03: Automatisches Erstellen von Aktionsmethoden (Klicken Sie hier, um das bild in voller Größe anzuzeigen)
Eintrag 2: Controller\CustomerController.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using System.Web.Mvc.Ajax;
namespace MvcApplication1.Controllers
{
public class CustomerController : Controller
{
//
// GET: /Customer/
public ActionResult Index()
{
return View();
}
//
// GET: /Customer/Details/5
public ActionResult Details(int id)
{
return View();
}
//
// GET: /Customer/Create
public ActionResult Create()
{
return View();
}
//
// POST: /Customer/Create
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult Create(FormCollection collection)
{
try
{
// TODO: Add insert logic here
return RedirectToAction("Index");
}
catch
{
return View();
}
}
//
// GET: /Customer/Edit/5
public ActionResult Edit(int id)
{
return View();
}
//
// POST: /Customer/Edit/5
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult Edit(int id, FormCollection collection)
{
try
{
// TODO: Add update logic here
return RedirectToAction("Index");
}
catch
{
return View();
}
}
}
}
Bei diesen generierten Methoden handelt es sich um Stubmethoden. Sie müssen die eigentliche Logik zum Erstellen, Aktualisieren und Anzeigen von Details für einen Kunden selbst hinzufügen. Aber die Stubmethoden bieten Ihnen einen schönen Ausgangspunkt.
Erstellen einer Controllerklasse
Der ASP.NET MVC-Controller ist nur eine Klasse. Wenn Sie möchten, können Sie das praktische Visual Studio-Controllergerüst ignorieren und eine Controllerklasse von Hand erstellen. Führen Sie die folgenden Schritte aus:
- Klicken Sie mit der rechten Maustaste auf den Ordner Controller, wählen Sie die Menüoption Hinzufügen, Neues Element aus, und wählen Sie die Klassenvorlage aus (siehe Abbildung 4).
- Nennen Sie die neue Klasse PersonController.cs, und klicken Sie auf die Schaltfläche Hinzufügen .
- Ändern Sie die resultierende Klassendatei, sodass die Klasse von der System.Web.Mvc.Controller-Basisklasse erbt (siehe Listing 3).
Abbildung 04: Erstellen einer neuen Klasse(Klicken Sie hier, um ein Bild in voller Größe anzuzeigen)
Eintrag 3: Controller\PersonController.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
namespace MvcApplication1.Controllers
{
public class PersonController : System.Web.Mvc.Controller
{
public string Index()
{
return "Hello World!";
}
}
}
Der Controller in Listing 3 macht eine Aktion namens Index() verfügbar, die die Zeichenfolge "Hallo Welt!" zurückgibt. Sie können diese Controlleraktion aufrufen, indem Sie Ihre Anwendung ausführen und eine URL wie folgt anfordern:
http://localhost:40071/Person
Hinweis
Der ASP.NET Development Server verwendet eine zufällige Portnummer (z. B. 40071). Wenn Sie eine URL zum Aufrufen eines Controllers eingeben, müssen Sie die richtige Portnummer angeben. Sie können die Portnummer ermitteln, indem Sie mit der Maus auf das Symbol für den ASP.NET Development Server im Windows-Benachrichtigungsbereich (unten rechts auf dem Bildschirm) zeigen.