ASP.NET MVC 3 Tutorial #2–Was ein Controller so alles kann.

Im vorigen Teil habe ich damit begonnen, die Architektur des MVC Patterns kurz vorzustellen. Nun wollen wir uns dem Controller – beziehungsweise vielmehr dem URL-Mapping – widmen. Die gute Nachricht vorweg: Asp.NET MVC mapped die URLs per default bereits sehr schön auf die Controller und deren Methoden. Man kann also davon ausgehen das Controller/Methodenname im Browser ähnlich vorkommen. In der folgenden Abbildung wird die Startseite angezeigt. Diese kann auch über /Home/Index aufgerufen werden. Für die Startseite ist dies jedoch nicht notwendig da die leere URL standardgemäß auf /Home/Index zeigt.

8image

Prinzipiell kann man sich folgendes Schema vorstellen:

https://myurl.com/Controller/Action?Parameters

Der Controller in der URL ist in diesem Fall der jeweilige Controller – z.B. der HomeController (wobei in der URL die Silbe “Controller” weg fällt) und Action ist die Methode “Index” am Controller. In Asp.NET MVC werden diese Routings, auf welche verwiesen wird, in der Datei “Global.asax.cs” geregelt. Der Default-Route, welcher in diesem Fall verwendet wird, sieht folgendermaßen aus:

 routes.MapRoute(
    "Default", // Route name
    "{controller}/{action}/{id}", // URL with parameters
    new { controller = "Home", action = "Index", id = UrlParameter.Optional } // Parameter defaults
);

Dies kann z.B. “Home/Index” sein. Die Routes werde ich in einem späteren Artikel noch genauer vorstellen. Damit kann man sehr einfach Browser-freundliche URLs erzeugen. Wenn ich nun einen neuen Controller einfüge und diesen “ForceController” nenne, so kann ich auf die Index-Methode durch Angabe der URL /Force darauf zugreifen. Wie bereits oben dargestellt: "Index” als Action ist laut unserem Controller der Standard.

9image

Natürlich kann ich den Controller auch um viele Methoden erweitern. Wenn ich eine Action “HelloWorld” einfüge, so kann ich diese mit “/Force/HelloWorld” aufrufen.

10image

Mit der Methode “GetSomeId” übergebe ich einen Parameter an den Controller. In diesem Fall ist es die ID 5. Diese sende ich im View auch an den Browser zurück.

11image

Außerdem ist es möglich, Parameter nicht mitzusenden – in diesem Fall als Nullable.

12image

Im kommenden Post werden wir uns ansehen wie dieser Controller nun auf Quellcode-Seite aussieht.