ModelMetaData é um conceito importante no MVC, incluindo, mas não se limitando a, o tipo de modelo, quais atributos o modelo contém, quais tipos de atributos existem e quais características estão presentes nesses attributos.
ASP.NET MVC3.0 fornece os metadados padrão do modelo DataAnotaçõesMetadados herda do ModelMetadata (além disso, o sistema fornece o provedor padrão de metadados do modelo DataAnotaçõesProvedorModeloMetadados)
classe pública DataAnotaçõesMetadados : ModelMetadados
Seu construtor é o seguinte
Public DataAnnotationsModelMetadata(DataAnnotationsModelMetadataProvider provedor, Tipo containerType, Func modelAccessor, Type modelType, string propertyName, DisplayColumnAttribute displayColumnAttribute);
A classe DataAnnotationsModelMetadata possui várias propriedades comumente usadas
Nome de exibição DisplayName, string de formato DisplayFormatString
TemplateHint recebe um valor para escolher qual template usar
Para DisplayName, o método LabelFor<TModel, TValue> usa essa propriedade para gerar o texto do rótulo. SignificaUma vez que a propriedade DispalyName esteja definida em nosso modelo, use o método html.editForModel() em visualizaçãoEle exibirá automaticamente a tag de etiqueta "<etiqueta para="nome de usuário" > nome </ para esse atributo</label> do modelo.
[display( name="name",order=2)] //atributo order altera a ordem da página html nome de usuário da string pública { get; set; }
Código-fonte HTML:
A propriedade Display usada no atributo nome de usuário é a classe System.ComponentModel.DataAnnotations.DisplayAttribute, que oferece um recurso genérico que permite especificar strings localizáveis para o tipo e membro da classe de divisão da entidade
Também há recursos do System.Web.MVC e System.ComponentModel.DataAnnotations, cujos nomes são todas classes de características semelhantes ao XXXXAttribute, todas com escopos de uso específicos, algumas restringem propriedades do modelo, outras restringem Contrller, outras restringem Ações, etc.
A seguir está uma lista de classes de características embutidas e comumente usadas nesses dois namespaces
1) Espaço System.Web.MVC
AceitarVerbosAtributo, AçãoFiltroAtributo, AçãoNomeAtributo, AsyncTimeOutAttribute, AutorizizeAttribute, VincularAtributo,
HiddenInputAttribute
ActionFilterAttribute representa a classe base de todas as propriedades do filtro de ação
HttpDeleteAttribute, que representa uma propriedade usada para restringir o método operacional de modo que o método apenas lide com solicitações HTTP DELETE
HttpGetAttribute, um atributo HttpPostAttribute que restringe o método de operação a processar apenas solicitações PUT
HttpPutAttribute representa uma propriedade usada para restringir o método de operação para que o método apenas lide com requisições HTTP PUT.
Exemplo: ActionNameAttribute especifica o nome real da ação da ação, e o uso é o seguinte
[NomeAção()]
Índice de Resultados de Ação pública ()
Exemplo: A classe HiddenInputAttribute, que representa uma propriedade que indica se um valor de propriedade ou valor de campo deve ser renderizado como um elemento de entrada oculto |