Dit artikel is een spiegelartikel van machinevertaling, klik hier om naar het oorspronkelijke artikel te gaan.

Bekijken: 19676|Antwoord: 2

[Tips] MVC metamodel metadata ViewData.ModelMetadata

[Link kopiëren]
Geplaatst op 28-06-2017 21:12:49 | | | |

ModelMetaData is een belangrijk concept in MVC, inclusief maar niet beperkt tot het type model, welke attributen het model bevat, welke soorten attributen er zijn en welke kenmerken op de attributen staan.

ASP.NET MVC3.0 levert de standaard modelmetadata DataAnnotationsModelMetadata van ModelMetadata (daarnaast levert het systeem de standaard modelmetadataprovider DataAnnotationsModelMetadataProvider)

publieke klasse DataAnnotatiesModelMetadata : ModelMetadata

De constructor ervan is als volgt

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


De DataAnnotationsModelMetadata-klasse heeft verschillende veelgebruikte eigenschappen

DisplayName weergavenaam, DisplayFormatString-formaatstring

TemplateHint krijgt een waarde om te kiezen welke template je gebruikt


Voor DisplayName gebruikt de LabelFor<TModel, TValue> methode deze eigenschap om de labeltekst te genereren.  Het betekentZodra de DispalyName-eigenschap op ons model is gedefinieerd, gebruik dan de html.editForModel()-methode in het zichtHet zal automatisch de labeltag " <label for="username" > naam </ voor dit attribuut</label> van het model weergeven.

  

[display( name="name",order=2)] //order-attribuut verandert de volgorde van de html-pagina
  publieke string gebruikersnaam { get; set; }




HTML-broncode:




De Display-eigenschap die wordt gebruikt op het gebruikersnaamattribuut is de System.ComponentModel.DataAnnotations.DisplayAttribute klasse, die een generieke functie biedt waarmee je lokaliseerbare strings kunt specificeren voor het type en lid van de entiteitsdivisieklasse


Er zijn ook functies van System.Web.MVC en System.ComponentModel.DataAnnotations, waarvan de namen allemaal featureklassen zijn vergelijkbaar met XXXXAttribute, die allemaal specifieke gebruiksgebieden hebben, sommige beperken modeleigenschappen, sommige beperken Contrller, sommige beperken Acties, enzovoort.


Hieronder volgt een lijst van ingebouwde en veelgebruikte featureklassen in deze twee naamruimtes

1) System.Web.MVC-ruimte

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

HiddenInputAttribuut

ActionFilterAttribute vertegenwoordigt de basisklasse van alle actiefiltereigenschappen

HttpDeleteAttribut-klasse, die een eigenschap vertegenwoordigt die wordt gebruikt om de operationele methode te beperken zodat de methode alleen HTTP DELETE-verzoeken afhandelt

HttpGetAttribute, een HttpPostAttribute-attribuut dat de operatiemethode beperkt tot alleen het verwerken van PUT-verzoeken

HttpPutAttribute vertegenwoordigt een eigenschap die wordt gebruikt om de operatiemethode te beperken zodat de methode alleen HTTP PUT-verzoeken afhandelt.


Voorbeeld: ActionNameAttribute specificeert de daadwerkelijke actienaam van de actie, en het gebruik is als volgt

[ActieNaam()]

publieke ActionResult Index()


Voorbeeld: De HiddenInputAttribut-klasse, die een eigenschap vertegenwoordigt die aangeeft of een eigenschapswaarde of veldwaarde als een verborgen invoerelement moet worden weergegeven




Vorig:[A] MySql.Data.MySqlClient.MySqlConnection kan niet worden omgezet naar [B]MySql.Data.MySqlC...
Volgend:Uncaught TypeError: Kan eigenschap 'unobtrusive' van ongedefinieerd niet instellen
 Huisbaas| Geplaatst op 28-06-2017 21:14:05 |
ModelMetadata



 Huisbaas| Geplaatst op 01-12-2017 16:53:12 |


ViewData om de eigendomscode te verkrijgen:

ViewDataDictionary viewData2=nieuwe ViewDataDictionary(ViewData["Test"]);
viewData2.ModelMetadata.Properties;
Disclaimer:
Alle software, programmeermaterialen of artikelen die door Code Farmer Network worden gepubliceerd, zijn uitsluitend bedoeld voor leer- en onderzoeksdoeleinden; De bovenstaande inhoud mag niet worden gebruikt voor commerciële of illegale doeleinden, anders dragen gebruikers alle gevolgen. De informatie op deze site komt van het internet, en auteursrechtconflicten hebben niets met deze site te maken. Je moet bovenstaande inhoud volledig van je computer verwijderen binnen 24 uur na het downloaden. Als je het programma leuk vindt, steun dan de echte software, koop registratie en krijg betere echte diensten. Als er sprake is van een inbreuk, neem dan contact met ons op via e-mail.

Mail To:help@itsvse.com