"ModelMetaData" yra svarbi MVC sąvoka, įskaitant, bet neapsiribojant, modelio tipą, kokie atributai yra modelyje, kokie atributų tipai yra ir kokios savybės yra atributuose.
ASP.NET MVC3.0 pateikia numatytuosius modelio metaduomenis DataAnnotationsModelMetadata paveldi iš ModelMetadata (be to, sistema pateikia numatytąjį modelio metaduomenų teikėją DataAnnotationsModelMetadataProvider)
viešoji klasė DataAnnotationsModelMetadata : ModelMetadata
Jo konstruktorius yra toks
public DataAnnotationsModelMetadata(DataAnnotationsModelMetadataProvider teikėjas, Type containerType, Func modelAccessor, Type modelType, string propertyName, DisplayColumnAttribute displayColumnAttribute);
DataAnnotationsModelMetadata klasė turi keletą dažniausiai naudojamų ypatybių
DisplayName rodomas vardas, DisplayFormatString formato eilutė
TemplateHint gauna reikšmę, kad būtų galima pasirinkti, kurį šabloną naudoti
DisplayName metodas LabelFor<TModel, TValue> naudoja šią ypatybę žymos tekstui generuoti. Tai reiškiaKai mūsų modelyje bus apibrėžta ypatybė DispalyName, naudokite metodą html.editForModel()Automatiškai bus rodoma šio modelio atributo etiketė " <label for="username" > pavadinimas </</label>.
[display( name="name",order=2)] //order atributas keičia html puslapio tvarką viešosios eilutės vartotojo vardas { get; rinkinys; }
HTML šaltinio kodas:
Vartotojo vardo atribute naudojama ypatybė Display yra System.ComponentModel.DataAnnotations.DisplayAttribute klasė, kuri suteikia bendrąją funkciją, leidžiančią nurodyti lokalizuojamas objekto padalijimo klasės tipo ir nario eilutes
Taip pat yra funkcijų iš System.Web.MVC ir System.ComponentModel.DataAnnotations, kurių pavadinimai yra visi funkcijų klasės, panašios į XXXXAttribute, kurios visos turi specifines naudojimo sritis, kai kurios riboja modelio ypatybes, kai kurios riboja Contrller, kai kurios riboja veiksmus ir kt.
Toliau pateikiamas šiose dviejose vardų erdvėse įtaisytųjų ir dažniausiai naudojamų funkcijų klasių sąrašas
1) System.Web.MVC erdvė
AcceptVerbsAttribute,ActionFilterAttribute,ActionNameAttribute,AsyncTimeoutAttribute,AuthorizeAttribute,BindAttribute,
HiddenInputAttribute
ActionFilterAttribute nurodo visų veiksmų filtro ypatybių pagrindinę klasę
HttpDeleteAttribute klasė, kuri reiškia ypatybę, naudojamą operacijos metodui apriboti, kad metodas apdorotų tik HTTP DELETE užklausas
HttpGetAttribute, HttpPostAttribute atributas, apribojantis operacijos metodą tik PUT užklausoms apdoroti
HttpPutAttribute reiškia ypatybę, naudojamą operacijos metodui apriboti, kad metodas apdorotų tik HTTP PUT užklausas.
Pavyzdys: ActionNameAttribute nurodo faktinį veiksmo pavadinimą, o naudojimas yra toks
[Veiksmo pavadinimas()]
public ActionResult Index()
Pavyzdys: HiddenInputAttribute klasė, nurodanti ypatybę, nurodančią, ar ypatybės reikšmė ar lauko reikšmė turi būti pateikiama kaip paslėptas įvesties elementas |