Property getters og setters
Du har sikkert lagt merke til vi skriver feltene våre med {get;set;} bak på PersonModel.
Det betyr at man har lov til både å lese fra og skrive til feltet på objektet. Ofte har vi felter som inneholder noe logikk, eller som kombinerer andre felter. Da kan man bruker get-metoden til å regne det ut, istedet for å dobbelt-lagre informasjon.
Vi legger til feltene i PersonModel:
public string FullName
{
get
{
return string.Format("{0} {1}", FirstName, LastName);
}
}
public int? Age
{
get
{
if (DateOfBirth != null)
{
var today = DateTime.Today;
int age = today.Year - DateOfBirth.Value.Year;
if (DateOfBirth > today.AddYears(-age)) age--;
return age;
}
return null;
}
}
Og i Show.cshtml:
@MVCintro.Models.PersonModel
<h2>@Html.DisplayFor(m => m.FullName)</h2>
@Html.Partial("_Show", Model)
<p>@Html.DisplayNameFor(m => m.PhoneNumber): @Html.DisplayFor(m => m.PhoneNumber)</p>
<p>@Html.DisplayNameFor(m => m.IdentityNumber): @Html.DisplayFor(m => m.IdentityNumber)</p>
<p>@Html.DisplayNameFor(m => m.DateOfBirth): @Html.DisplayFor(m => m.DateOfBirth)</p>
<p>@Html.DisplayNameFor(m => m.EmailAddress): @Html.DisplayFor(m => m.EmailAddress)</p>
<p>@Html.DisplayNameFor(m => m.Age): @Html.DisplayFor(m => m.Age)</p>
Bygg og test.
<= Tilbake