ModelMetaData je pomemben koncept v MVC, vključno, a ne omejeno na vrsto modela, katere atribute model vsebuje, katere vrste atributov so prisotne in katere značilnosti so na atributih.
ASP.NET MVC3.0 zagotavlja privzete metapodatke modela, DataAnnotationsModelMetadata podeduje iz ModelMetadata (poleg tega sistem zagotavlja ponudnika metapodatkov privzetega modela DataAnnotationsModelMetadataProvider)
javni razred DataAnnotationsModelMetadata : ModelMetadata
Njegov konstruktor je naslednji
public DataAnnotationsModelMetadata(DataAnnotationsModelMetadataProvider provider, Type containerType, Func modelAccessor, Type modelType, string propertyName, DisplayColumnAttribute displayColumnAttribute);
Razred DataAnnotationsModelMetadata ima več pogosto uporabljenih lastnosti
DisplayName prikaza, DisplayFormatString format string
TemplateHint dobi vrednost za izbiro predloge
Za DisplayName metoda LabelFor<TModel, TValue> uporablja to lastnost za generiranje besedila oznake. PomeniKo je lastnost DispalyName definirana na našem modelu, uporabite metodo html.editForModel() v prikazuSamodejno bo prikazal oznako "<oznaka za="uporabniško ime" > ime </ za ta atribut</label> modela.
[display( name="name",order=2)] //attribute order spremeni vrstni red html strani Uporabniško ime javnega niza { get; set; }
HTML izvorna koda:
Lastnost Display, ki se uporablja v atributu uporabniškega imena, je razred System.ComponentModel.DataAnnotations.DisplayAtribut, ki zagotavlja generično funkcijo, ki omogoča določitev lokalizabilnih nizov za tip in člana razreda entity division
Obstajajo tudi funkcije iz System.Web.MVC in System.ComponentModel.DataAnnotations, katerih imena so vsi razredi značilnosti, podobni XXXXAttribute, vsi imajo specifične obsege uporabe, nekateri omejujejo lastnosti modela, nekateri omejujejo Contrller, nekateri Actions itd.
Spodaj je seznam vgrajenih in pogosto uporabljenih razredov značilnosti v teh dveh imenskih prostorih
1) Prostor System.Web.MVC
SprejmiVerbsAttribute,ActionFilterAttribute,ActionNameAttribute,AsyncTimeoutAttribute,AuthorizeAttribute,BindAttribute,
HiddenInputAttribute
ActionFilterAttribute predstavlja osnovni razred vseh lastnosti akcijskega filtra
HttpDeleteAttribute razred, ki predstavlja lastnost, ki omejuje operativno metodo, tako da metoda obravnava le HTTP DELETE zahteve
HttpGetAttribute, atribut HttpPostAtribut, ki omejuje operativno metodo na obdelavo samo PUT zahtevkov
HttpPutAttribute predstavlja lastnost, ki omejuje operativno metodo, tako da metoda obravnava le HTTP PUT zahteve.
Primer: ActionNameAttribute določa dejansko ime dejanja, uporaba pa je naslednja
[ActionName()]
javni ActionResult Index()
Primer: Razred HiddenInputAttribute (HiddenInputAtribut), ki predstavlja lastnost, ki označuje, ali naj se vrednost lastnosti ali polje prikaže kot skriti vhodni element |