Soy consciente de que en una plantilla personalizada de visualización o editor puedo obtener metadatos sobre el modelo a través del ViewData.ModelMetadata
, que tiene propiedades que indican si se han definido ciertos atributos de metadatos para la propiedad, como IsRequired
, DisplayName
, etc. ¿Pero de todos modos puedo acceder a los metadatos personalizados que he agregado a la propiedad a través de atributos personalizados?¿Es posible acceder a información de metadatos adicional desde una pantalla personalizada o una plantilla de editor?
Por ejemplo, decir que en mi opinión, tengo una propiedad de este modo:
[UIHint("Whizbang")]
[SomeAttribute("foobar")]
public string LeftWhizbang { get; set; }
Y tengo una plantilla de visualización personalizada denominada Whizbang.cshtml
con el siguiente contenido:
@model string
Left Whizbang Value: @Model
lo que había gustaría hacer es determinar si la propiedad LeftWhizbang
está decorada con el atributo SomeAttribute
y, si es así, me gustaría acceder a la propiedad Message
del atributo, es decir, el valor "foobar".
me gustaría ser capaz de hacer algo como esto en mi plantilla:
@model string
Left Whizbang Value: @Model
@{
SomeAttributeAttribute attr = ViewData.ModelMetadata.GetAttributes(...);
if (attr != null)
{
<text>... and the value is @attr.Message</text>
}
}
¿Este es posible, o estoy mirando hacia abajo un callejón sin salida?
muy útiles, gracias por compartir! –