ModelMetaData es un concepto importante en MVC, que incluye, pero no se limita a, el tipo de modelo, qué atributos contiene el modelo, qué tipos de atributos hay y qué características tienen los atributos.
ASP.NET MVC3.0 proporciona los metadatos predeterminados del modelo DataAnotacionesModeloMetadatos heredan de ModelMetadatos (además, el sistema proporciona el proveedor predeterminado de metadatos del modelo DataAnotacionesModeloMetadatosProveedor)
clase pública DataAnotacionesModelMetadatos : ModelMetadatos
Su constructor es el siguiente
públicoDatosAnotaModeloMetadatos(DatosAnotacionesModeloProveedorProveedorDatos, Tipo containerType, Func modelAccessor, Type modelType, string propertyName, DisplayColumnAttribute displayColumnAttribute);
La clase DataAnnotationsModelMetadata tiene varias propiedades comúnmente utilizadas
Nombre de visualización, cadena de formato DisplayFormat
TemplateHint obtiene un valor para elegir qué plantilla usar
Para DisplayName, el método LabelFor<TModel, TValue> utiliza esta propiedad para generar el texto de la etiqueta. SignificaUna vez definida la propiedad DispalyName en nuestro modelo, utiliza el método html.editForModel() en vistaMostrará automáticamente la etiqueta de etiqueta "<etiqueta para="username" > nombre </ para este atributo</label> del modelo.
[display( name="name",order=2)] //order (el atributo de orden cambia el orden de la página html nombre de usuario de cadena pública { get; set; }
Código fuente HTML:
La propiedad Display utilizada en el atributo nombre de usuario es la clase System.ComponentModel.DataAnnotations.DisplayAttribute, que proporciona una función genérica que permite especificar cadenas localizables para el tipo y miembro de la clase de división de entidad
También hay características de System.Web.MVC y System.ComponentModel.DataAnnotations, cuyos nombres son todas clases de características similares a XXXXAttribute, todas con ámbitos de uso específicos, algunas restringen propiedades del modelo, otras restringen Contrller, otras restringen Acciones, etc.
A continuación se muestra una lista de clases de características integradas y comúnmente utilizadas en estos dos espacios de nombres
1) Espacio System.Web.MVC
AceptarVerbosAtributo, AcciónFiltroAtributo, AcciónNombreAtributo, AsyncTimeOutAttribute, AuthorizeAttribute, BindAttribute,
HiddenInputAttribute
ActionFilterAttribute representa la clase base de todas las propiedades del filtro de acción
Clase HttpDeleteAttribute, que representa una propiedad utilizada para restringir el método de operación de modo que este solo maneje solicitudes HTTP DELETE
HttpGetAttribute, un atributo HttpPostAttribute que restringe el método de operación para procesar solo las solicitudes PUT
HttpPutAttribute representa una propiedad que se utiliza para restringir el método de operación de modo que el método solo maneje solicitudes HTTP PUT.
Ejemplo: ActionNameAttribute especifica el nombre real de la acción y su uso es el siguiente
[NombreAcción()]
Índice de Resultados de Acción pública ()
Ejemplo: La clase HiddenInputAttribute, que representa una propiedad que indica si un valor de propiedad o un valor de campo debe renderizarse como un elemento de entrada oculto |