ModelMetadata pour le type complexe editortemplate en asp.net mvc
-
26-10-2019 - |
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?
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