Sunteți pe pagina 1din 2

Definire rute cu atribute.

24-Mar-14

MVC 5 Definire rute folosind atribute


Acest mecanism introdus in MVC 5 permite de a defini ruta in acelasi loc unde am definit si
actiunea.
Atributul folosit se numeste Route si poate fi atasat direct la metoda (actiune) din controller.
[Route("Products/Electronics/{id}")]
public ActionResult GetElectronicItems(string id)
{
ViewBag.Id = id;
return View();
}

In fisierul RouteConfig trebuie sa adaugam urmatorul cod:


public static void RegisterRoutes(RouteCollection routes)
{
routes.MapMvcAttributeRoutes();
}

Parametrul optional se defineste in pattern-ul URL folosind notatia ?.


[Route("Products/Electronics/{id?}")]
public ActionResult GetElectronicItems(int? id) {
ViewBag.Id = id; return View();
}

id este un tip Nullable, si existenta valorii se testeaza folosind proprietatea HasValue.

Atributul RoutePrefix
In cazul cand un controller contine mai multe actiuni ce folosesc acelasi prefix, putem atasa
atributul RoutePrefix la controller si valrile se vor propaga si pentru actiuni.
[RoutePrefix("Products")] // aplicat la controller

Ceea ce am declarat in RoutePrefix va prefixa rutele definite cu atributul Route pentru


actiuni.
La actiuni acum putem scrie
[Route("Electronics/{id}")] // ruta va deveni /Products/Electronics/{id}

Definire rute cu atribute.

24-Mar-14

Constrangeri : se specifica tipul exact al parametrului.


[Route("Products/Electronics/{id:int}")]

Alte constrangeri folosite in atributul Route


Route
Used To
Constraint
x:bool
Match a bool parameter
x:maxlength(n) Match a string parameter with maximum
length of n characters
x:minlength(n) Match a string parameter with minimum
length of n characters
x:max
Match an integer parameter with a maximum
value of n.
x:min
Match an integer parameter with a minimum
value of n.
x:range
Match an integer parameter within a range
of values.
x:float
Match floating-point parameter.
x:alpha
Match uppercase or lowercase alphabet
characters
x:regex
Match a regular expression.
x:datetime
Match a DateTime parameter.

S-ar putea să vă placă și