onsdag den 11. juli 2012

Lister og modeller i MVC 3 (Razor engine)


Jeg mener selv jeg har rimeligt styr på MVC 3 (og lidt på MVC 4) efterhånden, og har arbejdet på flere forskellige principper og lært meget forskelligt omkring hvordan ting gøres i MVC 3 fremfor Webforms. Det er lige mig og jeg bliver så meget mere glad for den måde at arbejde på.

I dag ville jeg så lige hurtigt teste noget og udskrive en liste med div's, hvilket jeg faktisk ikke har gjort endnu fordi det virkede lige til efter at have læst flere guides omkring emnet så det gad jeg ikke gøre for det kunne ikke være specielt svært.
Men det virkede bare ikke.

Jeg har så erfaret i aften at det var på grund af lidt forvirring omkring begreber.
@[variabel-her] betyder du får noget ud her
Dette kunne for eksempelvis være:
@ViewBag.user som ville udskrive værdien fra user-property sat i din Controller. Dette kunne bruges til at sige om der skrives Hejsa Gæst eller Hejsa Laurits.

Når man vil have afviklet en stump kode og noget udført så kan man lave denne logik således:
@{ logic goes here }
Et godt eksempel herpå er
@{
    ViewBag.Title = "TheTest";
}

Dog hvis man vil have noget udført, såsom if-statement eller for-loops etc. så skal man gøre det anderledes. Nemlig:
@for (int i = 0; i < 3; i++)
{
    <div>Look at this: @i</div>
}

Hvis man bruger en model ved hjælp af dette: @model TestingList.Models.EmployeeList
Kan man benytte nedenstående:
@foreach (var employment in Model.EmploymentList)
{
    <div>@employment.Titel</div>
}              

Det som forvirrede var hvornår man brugte @{} og @[statement], for troede at et for-loop i MVC3 skulle ind i @{ something something }, men man skal udelade det og så finder MVC3 selv ud af at fjerne {} inde midt i det hele.

Ingen kommentarer:

Send en kommentar

Kan du lide mit indlæg, har en kommentar, forslag eller andet på hjerte så skriv venligst