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

Von Mario Meir-Huber Autor Feed 28. March 2011 14:08

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.

image

Prinzipiell kann man sich folgendes Schema vorstellen:

http://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.

image

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.

image

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.

image

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

image

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

Comments (2) -

>

4/11/2011 3:11:37 PM #

/GetSomeId?id=5 ist glaube ich aber nicht im Sinne der Erfindung. Hier sollte man nochmals auf die Einstellungen in der global.asax zurück kommen. Da ist bzw. kann man ja regeln wie mit Parametern einer Methode in der URL umgegangen wird. Interessant wäre auch eine Anmerkung gewesen, wenn ich mehrere Parameter an die Methode übergebe --> /GetSomeId/5/100

Gruß
Rene

Rene Drescher-Hackel Germany

>

6/13/2011 3:01:08 PM #

da ich gerade auch mit MVC 3 begonnen habe, gefältt mir der Einstieg.
Was ich noch sehr gern wissen möchte ist da ich kein ASPX Dateien gesehen habe, wie man Steuerelemente malen kann.
Die csHTML Dateien haben keine Designansicht jedenfalls nicht bei meinem VS2010.
Habe ich was übersehen ?
Vielen dank.

Mehmet Germany

Pingbacks and trackbacks (1)+

Add comment

  Country flag

biuquote
  • Comment
  • Preview
Loading

www.microsoft.com/austria | © 2009 Microsoft Corporation. Alle Rechte vorbehalten.
BlogEngine.NET 2.5.0.6 powered by atwork