ModelMetaData je důležitý pojem v MVC, včetně, ale nejen, typu modelu, jaké atributy model obsahuje, jaké typy atributů se vyskytují a jaké charakteristiky jsou na atributech.
ASP.NET MVC3.0 poskytuje výchozí metadata modelu, DataAnnotationsModelMetadata dědí z ModelMetadata (navíc systém poskytuje výchozího poskytovatele metadat modelu DataAnnotationsModelMetadataProvider)
public class DataAnnotationsModelMetadata : ModelMetadata
Jeho konstruktor je následující
public DataAnnotationsModelMetadata(DataAnnotationsModelMetadataProvider provider, Type containerType, Func modelAccessor, Type modelType, string propertyName, DisplayColumnAttribute displayColumnAttribute);
Třída DataAnnotationsModelMetadata má několik běžně používaných vlastností
DisplayName zobrazení, formátový řetězec DisplayFormatString
TemplateHint získá hodnotu, kterou si vybere, kterou šablonu použít
Pro DisplayName používá metoda LabelFor<TModel, TValue> tuto vlastnost k generování textu štítku. Znamená toJakmile je vlastnost DispalyName definována v našem modelu, použijte metodu html.editForModel() v režimu viewAutomaticky zobrazí štítek "<label for="username" > název </ pro tento atribut</label> modelu.
[display( name="name",order=2)] //atribut order mění pořadí HTML stránky public string username { get; set; }
Zdrojový kód HTML:
Vlastnost Display používaná v atributu username je třída System.ComponentModel.DataAnnotations.DisplayAtribut, která poskytuje obecnou funkci umožňující zadat lokalizovatelné řetězce pro typ a člena třídy entity division class
Jsou zde také funkce ze System.Web.MVC a System.ComponentModel.DataAnnotations, jejichž názvy jsou všechny třídy funkcí podobné XXXXAttribute, všechny mají specifické rozsahy použití, některé omezují vlastnosti modelu, některé omezují Contrller, některé Actions atd.
Následuje seznam vestavěných a běžně používaných tříd rysů v těchto dvou jmenných prostorech
1) Prostor System.Web.MVC
PřijmoutVerbsAttribute, ActionFilterAttribute, ActionNameAttribute, AsyncTimeoutAttribute, AuthorizeAttribute, BindAttribute,
HiddenInputAttribute
ActionFilterAttribute představuje základní třídu všech vlastností akčního filtru
Třída HttpDeleteAttribute představuje vlastnost používanou k omezení operační metody tak, aby metoda zpracovávala pouze HTTP DELETE požadavky
HttpGetAttribute, atribut HttpPostAtribut, který omezuje operační metodu pouze na zpracování PUT požadavků
HttpPutAttribute představuje vlastnost, která se používá k omezení operační metody tak, aby metoda zpracovávala pouze HTTP PUT požadavky.
Příklad: ActionNameAttribute specifikuje skutečný název akce a jeho použití je následující
[ActionName()]
veřejný ActionResult Index()
Příklad: třída HiddenInputAttribute (Skrytý vstupní atribut), která představuje vlastnost určující, zda by měla být hodnota vlastnosti nebo pole zobrazena jako skrytý vstupní prvek |