| 

.NET C# Java Javascript Exception

0
Für Routen ist in ASP.NET MVC für gewöhnlich die Global.asax zuständig, so werden hier alle Routen definiert und gemappt. Doch wenn man viele verschiedene Routen nutzen will wird es schnell voll in der eigentlich sehr übersichtlichen Klasse. Da wäre es doch eigentlich cool wenn wir die Routen direct in unseren Controllern definieren könnten. Genau das ...

Für Routen ist in ASP.NET MVC für gewöhnlich die Global.asax zuständig, so werden hier alle Routen definiert und gemappt. Doch wenn man viele verschiedene Routen nutzen will wird es schnell voll in der eigentlich sehr übersichtlichen Klasse.

Da wäre es doch eigentlich cool wenn wir die Routen direct in unseren Controllern definieren könnten. Genau das können wir mit der Erweiterung AttributeRouting machen.

Installation

Installation über NuGet

Dank NuGet ist die Installation in wenigen Sekunden abgeschlossen und wir können unsere Actions mit Routing-Attributen dekorieren.

Die Attribute sind hierbei sehr einfach gestaltet und bieten uns alles was wir benötigen.


 public class DemoController : Controller
 {
 [GET("Ist/Das/Cool/Oder/Was")]
 public ActionResult Start()
 {
 return View();
 }
 }

Nun muss man nur noch die Attribut-basierten Routen registrieren:


 public static void RegisterRoutes(RouteCollection routes) {
 routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

 routes.MapAttributeRoutes(); //--- das wars!

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

Und fertig! Nun können wir die Seite starten und unsere Route testen:

Das Ergebnis

Das Ergebnis

Die Routen die wir definieren können, beschränken sich nicht darauf, so können diese auch problemlos parametrisiert werden, inklusive Defaultparameter:


 public class DemoController : Controller
 {
 [GET("Artikel/{artikelid}/{version?}")]
 [RouteDefault("artikelid", "120")]
 public ActionResult Start(int artikelid, string version)
 {
 ViewBag.ArtikelId = artikelid;
 ViewBag.Version = version;

 return View();
 }
 }

Hier wird der Parameter artikelid mit einem Defaultwert ausgestattet und der zweite optional gemacht. Das Ergebnis kann sich sehen lasen:

Läuft!

Läuft!

Hier hört das Framework nicht auf, so könnt ihr auch Regular Expressions in die Routen integrieren und auch mehrere Routen an eine Action heften. Die Möglichkeiten sind grenzenlos ;)

Für weitere Infos schaut einfach auf der Projekthomepage vorbei, es lohnt sich!

.net csharp asp.net allgemein tipps-und-tricks programmierung tutorials asp mvc
Weitere News:
Schreibe einen Kommentar:
Themen:
mvc asp tutorials programmierung tipps-und-tricks allgemein asp.net csharp .net
Entweder einloggen... ...oder ohne Wartezeit registrieren
Benutzername
Passwort
Passwort wiederholen
E-Mail
TOP TECHNOLOGIES CONSULTING GmbH