Question

I ai un viewmodel qui comprend un complexe de propriété de type TestThing qui est déclaré comme suit:

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

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

J'ai un EditorTemplate pour ce type dans lequel je voudrais être en mesure d'accéder aux méta-données pour chacune des propriétés de l'enfant. Si le modèle est une chaîne par exemple, je pouvais accéder au texte rapide en utilisant @ViewData.ModelMetadata.Watermark, mais parce qu'il est un type complexe, je ne peux pas utiliser cette méthode.

Y at-il une alternative?

Était-ce utile?

La solution

Vous pourriez chercher les métadonnées pour chaque propriété comme ceci:

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

Autres conseils

1) Check this out.

@Html.TextBoxFor
     (m => m.Test1 , 
        new {  
              @placeholder =  
              @ModelMetadata.FromLambdaExpression 
                  (m=>m.Test1 ,ViewData).Watermark.ToString()
            }
     )
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top