See artikkel on masintõlke peegelartikkel, palun klõpsake siia, et hüpata algse artikli juurde.

Vaade: 19676|Vastuse: 2

[Nõuanded] MVC metamudeli metaandmed ViewData.ModelMetadata

[Kopeeri link]
Postitatud 28.06.2017 21:12:49 | | | |

ModelMetaData on oluline mõiste MVC-s, mis hõlmab, kuid mitte ainult, mudeli tüübi, omaduste, atribuutide, atribuutide ja omaduste määramisega.

ASP.NET MVC3.0 pakub vaikimisi mudeli metaandmeid, mida DataAnnotationsModelMetadata pärib ModelMetadatast (lisaks pakub süsteem vaikimisi mudeli metaandmete pakkujat DataAnnotationsModelMetadataProvider)

public class DataAnnotationsMudelMetadata : mudel Metadata

Selle konstruktor on järgmine

public DataAnnotationsModelMetadata(DataAnnotationsModelMetadataProvider provider, Type containerType, Func modelAccessor, Type modelType, string propertyName, DisplayColumnAttribute displayColumnAttribute);


DataAnnotationsModelMetadata klassil on mitu levinud omadust

DisplayName kuvanimi, DisplayFormatString formaadistring

TemplateHint saab väärtuse, millega valida, millist malli kasutada


DisplayName puhul kasutab LabelFor<TModel, TValue> meetod seda omadust sildi teksti genereerimiseks.  See tähendab, etKui DispalyName omadus on mudelis defineeritud, kasuta vaates html.editForModel() meetoditSee kuvab automaatselt selle mudeli atribuudi sildi "<label for="username" > nime </</label>.

  

[display( name="name",order=2)] //order atribuut muudab html-lehe järjekorda
  avaliku stringi kasutajanimi { get; seatud; }




HTML lähtekood:




Kasutajanime atribuudi Display-omadus on System.ComponentModel.DataAnnotations.DisplayAttribute klass, mis pakub üldist funktsiooni, mis võimaldab määrata lokaliseeritavaid stringe entiteedi jaotusklassi tüübi ja liikme jaoks


On olemas ka funktsioone System.Web.MVC ja System.ComponentModel.DataAnnotations platvormidest, mille nimed on kõik omadusklassid, sarnased XXXXAttribute'ile, millel kõigil on spetsiifiline kasutusvaldkond, mõned piiravad mudeli omadusi, mõned piiravad Contrllerit, mõned piiravad tegevusi jne.


Järgnevalt on toodud nende kahe nimeruumi sisseehitatud ja laialdaselt kasutatavate funktsiooniklasside nimekiri

1) System.Web.MVC ruum

AcceptVerbsAttribute,ActionFilterAttribute,ActionNameAttribute,AsyncTimeoutAttribute,AuthorizeAttribute,BindAttribute,

HiddenInputAttribute

ActionFilterAttribute esindab kõigi tegevusfiltri omaduste baasklassi

HttpDeleteAttribute klass, mis esindab omadust, mida kasutatakse operatsioonimeetodi piiramiseks nii, et meetod käsitleb ainult HTTP DELETE päringuid

HttpGetAttribute, HttpPostAttribute atribuut, mis piirab operatsioonimeetodit ainult PUT päringute töötlemiseks

HttpPutAttribute esindab omadust, mida kasutatakse operatsioonimeetodi piiramiseks nii, et meetod käsitleb ainult HTTP PUT päringuid.


Näide: ActionNameAttribute määrab tegevuse tegeliku tegevusnime ja kasutus on järgmine

[ActionName()]

public ActionResult Index()


Näide: HiddenInputAttribute klass, mis esindab omadust, mis näitab, kas omaduse või välja väärtus tuleks kuvada peidetud sisendelemendina




Eelmine:[A] MySql.Data.MySqlClient.MySqlConnection'i ei saa edastada [B]MySql.Data.MySqlC...
Järgmine:Uncatch TypeError: Ei saa määrata omadust 'unambitrusive' määratlemata
 Üürileandja| Postitatud 28.06.2017 21:14:05 |
 Üürileandja| Postitatud 01.12.2017 16:53:12 |


ViewData omaduskoodi saamiseks:

ViewDataDictionary viewData2=uus ViewDataDictionary(ViewData["Test"]);
viewData2.ModelMetadata.Properties;
Disclaimer:
Kõik Code Farmer Networki poolt avaldatud tarkvara, programmeerimismaterjalid või artiklid on mõeldud ainult õppimiseks ja uurimistööks; Ülaltoodud sisu ei tohi kasutada ärilistel ega ebaseaduslikel eesmärkidel, vastasel juhul kannavad kasutajad kõik tagajärjed. Selle saidi info pärineb internetist ning autoriõiguste vaidlused ei ole selle saidiga seotud. Ülaltoodud sisu tuleb oma arvutist täielikult kustutada 24 tunni jooksul pärast allalaadimist. Kui sulle programm meeldib, palun toeta originaaltarkvara, osta registreerimist ja saa paremaid ehtsaid teenuseid. Kui esineb rikkumist, palun võtke meiega ühendust e-posti teel.

Mail To:help@itsvse.com