Pregunta

Tengo un Modelo View que incluye una propiedad compleja de Tipo Testing que se declara como:

public class TestThing
{
        [Display(Name = "String3", Prompt = "String4")]
        public string Test1 { get; set; }

        [Display(Name = "String5", Prompt = "String6")]
        public string Test2 { get; set; }
}

Tengo una edición de plantilla para este tipo en la que me gustaría poder acceder a los meta datos para cada una de las propiedades infantiles. Si la plantilla era para una cadena, por ejemplo, podría acceder al texto de inmediato usando @ViewData.ModelMetadata.Watermark, pero debido a que es un tipo complejo, no puedo usar este método.

¿Hay una alternativa?

¿Fue útil?

Solución

Podrías obtener los metadatos para cada propiedad como esta:

@{
    var metadata = ModelMetadata
        .FromLambdaExpression<TestThing, string>(x => x.Test2, ViewData);
    var watermak = metadata.Watermark;
}

Otros consejos

1) Echa un vistazo a esto.

@Html.TextBoxFor
     (m => m.Test1 , 
        new {  
              @placeholder =  
              @ModelMetadata.FromLambdaExpression 
                  (m=>m.Test1 ,ViewData).Watermark.ToString()
            }
     )
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top