This article has been localized into Romanian by the community.
Bucle
Bucla (en: Looping) este o tehnică extrem de folositoare din care veți beneficia în codul dvs. Razor. Bucla vă permite să repetați o acțiune sau/și să ofere un specific numar de iterații - de exemplu să ofere itemii unei liste, așa cum veți vedea în exemplele acestui articol.
Sunt mai multe tipuri de bucle în C# și toate sunt disponibile în codul Razor. În continuare le veți parcurge, folosind aceeași sursă de date foarte simplă: o listă de nume, ce se va transforma într-o listă HTML neordonată.
Sursa de date
Începeți prin definirea unei liste de nume la începutul fișierului View, în felul următor:
@{
List<string> names = new List<string>()
{
"John Doe",
"Jane Doe",
"Joe Doe",
"Jenna Doe",
"Doggy Doe"
};
}
Sunteți pregătiți să testați mai multe tipuri de bucle.
Bucla „for”
Bucla for este potrivită în mod special pentru situații în care trebuie să rețineți câte bucle ați parcurs, deoarece puteți oricând accesa variabila contor (denumită i în aceste exemplu):
<ul>
@for (int i = 0; i < names.Count; i++)
{
<li>@names[i]</li>
}
</ul>
Bucla „foreach”
Bucla foreach este în mod clar cea mai ușor de folosit pentru acest task:
<ul>
@foreach (string name in names)
{
<li>@name</li>
}
</ul>
Bucla „while”
Bucla while este mai potrivită pentru alte cazuri decât acesta, dar puteți să o folosiți:
<ul>
@{
int counter = 0;
}
@while(counter < names.Count)
{
<li>@names[counter++]</li>
}
</ul>
Bucla „do...while”
Asemenea buclei while, și aceasta este mai potrivită pentru alte tipuri de bucle. Diferența dintre buclele while și do...while apare atunci când este evaluată condiția. Condiția buclei while este evaluată înainte să intre în prima iterație, însemnând că este posibil să nu parcurgă nici o buclă - condiția buclei do...while este evaluată după prima iterație, însemnând că va fi parcursă măcar o dată:
<ul>
@{
counter = 0;
}
@do
{
<li>@names[counter++]</li>
} while (counter < names.Count);
</ul>
break/continue
Proprietatea comună a tuturor buclelor este capabilitea lor de a fi întrerupte (en: break) (părăsirea definitivă a buclei) și de a continua (en: continue) (oprirea itereației curente și saltul la următoarea). Mai jos este un exemplu revizuit al buclei for unde folosim o condiție if pentru a ne asigura că opriți bucla după ce s-au afișat un maxim de 3 nume:
<ul>
@for (int i = 0; i < names.Count; i++)
{
<li>@names[i]</li>
@if(i >= 2)
{
<li>...and so on</li>
break;
}
}
</ul>
În concluzie
Așa cum puteți vedea, parcurgerea buclelor cu Razor este ca și în C#. Puteți chiar intra sau ieși din markup, ca și în exemplele de mai sus. Acest articol servește ca un exemplu despre cât de ușor puteți parcurge datele în buclă cu Razor - dacă vreți să știți mai multe despre teoria din spatele fiecărei bucle, vă rog să consultați tutorialul C#.