TOC

This article has been localized into Hungarian by the community.

Modellek:

Modellhitelesítő DataAnnotationök típusai

Az előző cikkben bemutattuk a modellhitelesítést, és hogy milyen egyszerűek is az alapjai. Használtunk is pár ellenőrzéssel kapcsolatos DataAnnotationt, mint a [Required] és [StringLength] attribútumokat, de mint már említettem, vannak mások is. Ebben a cikkben ezeket fogjuk számra venni, hogy lásd az előtted álló lehetőségeket.

[Required]

Azt jelöli, hogy kötelező egy érték megadása erre a tulajdonságra. Tudnod kell, hogy minden nem nullázható érték típus (például integer vagy DateTime) mindenképpen értékkel kell bírjon, ezért ezekhez nem szükséges a [Required] attribútum. Stringeknél fontos észben tartani, hogy egy üres string nullként lesz kezelve, és hitelesítési hibát fog visszaadni. Ezt megakadályozhatod viszont az AllowEmptyStrings tulajdonság segítségével:

[Required(AllowEmptyStrings = true)]

[StringLength]

Megadhatsz vele legalább egy maximum mennyiségű karaktert (ez az első, nem opcionális paraméter) stringek számára, de lehetőséged van minimum hossz megadására is. Íme a példa:

[StringLength(50, MinimumLength = 3)]

Ebben az esetben hiba jön fel, ha kevesebb mint három, vagy több mint ötven karakter hosszú az érték.

[Range]

A [Range] attribútummal megadhatsz egy minimum és maximum értéket egy számszerű értéknek (int, float, double, stb.). Ez esetben a minimum és a maximum határérték is kötelező:

[Range(1, 100)]

Ennél a példánál az érték 1 és 100 között kell legyen.

[Compare]

A [Compare] attribútummal összehasonlítást tehetsz a megjelölt tulajdonság és egy másik tulajdonság közt, amiknek egyezniük kell. Egy jó példa ennek használatára, hogy ellenőrizzük, hogy a felhasználó ugyanazt az értéket adta-e meg az "Email" és az "EmailRepeated" (email ismétlése) mezőkben:

[Compare("MailAddressRepeated")]
public string MailAddress { get; set; }

public string MailAddressRepeated { get; set; }

Specifikus típusok

Ha a stringed egy bizonyos kategóriába tartozik, például telefonszámról van szó, akkor az ASP.NET MVC egyből támogatja az ehhez tartozó hitelesítést. Itt van egy listája a megadható kategóriáknak:

  • [CreditCard]: Ellenőrzi, hogy a tulajdonság bankkártyaszám formátumnak felel-e meg.
  • [EmailAddress]: Ellenőrzi, hogy a tulajdonság e-mail formátumnak felel-e meg.
  • [Phone]: Ellenőrzi, hogy a tulajdonság telefonszám formátumnak felel-e meg.
  • [Url]: Ellenőrzi, hogy a tulajdonság URL formátumnak felel-e meg.

Közös ezekben, hogy csak alapvető ellenőrzést hajtanak végre. Például az e-mailes ellenőrzés csak annyit ellenőriz, hogy a megadott érték bír-e egy e-mail bizonyos tulajdonságaival, például van-e benne @ karakter és hasonlók, de ugyanúgy lehetséges marad olyan érték megadása, ami nem valódi e-mail cím. A pontosság és nagyobb flexibilitás érdekében használhatod inkább a [RegularExpression] attribútumot, vagy saját viselkedést implementálhatsz, ahogy azt a következő cikkben be fogjuk mutatni.

[RegularExpression]

Ha a fentiek egyike sem elég hajlékony az igényeidnek, akkor az utolsó megoldás a [RegularExpression] attribútum lehet. Ezzel megadhatsz egy reguláris kifejezést, ami alkalmazva lesz a tulajdonságra, és csak találat esetén lesz jóváhagyva. A reguláris kifejezések túl nagy témakör ehhez a cikkhez, de hadd mutassam be, milyen hasznosak is tudnak lenni. Képzeld el, hogy van egy WebUser osztályod egy MemberId tulajdonsággal, aminek pontosan ebben a formátumban kell lennie:

xx-0000-0000

Más szavakkal: két betű, kötőjel, majd kétszer négy szám ismét kötőjellel köztük, például zx-1234-5678. Írhatunk reguláris kifejezést pontosan erre az esetre, amit megadhatunk a [RegularExpression] attribútumban:

[RegularExpression("[a-z]{2}-[0-9]{4}-[0-9]{4}")]
public string MemberId { get; set; }

A reguláris kifejezésekben rejlő lehetőségekkel szinte végtelenek, és más helyzetben is használhatóak, mint hitelesítésben, szóval megéri megtanulni őket! Itt van pár link ahol megtanulhatod a reguláris kifejezések használatát: Regex Tutorial & Cheat sheet / Regex Interactive Tutorial.

Összefoglalás

Az ASP.NET MVC-be épített számos ellenőrzési lehetőséggel könnyedén hitelesítheted tulajdonságaidat, pusztán egy attribútum hozzáadásával. Ha több irányításra van szükséged efelett, akkor használhatod a [RegularExpression] attribútumot vagy a saját magad írta ellenőrzési logikát, aminek mikéntjét a következő cikkben mutatom be.


This article has been fully translated into the following languages: Is your preferred language not on the list? Click here to help us translate this article into your language!