Modelmetadata für komplexen Typen in der EditorTemplate in ASP.NET MVC
-
26-10-2019 - |
Frage
Ich habe ein ViewModel, das eine komplexe Eigenschaft von Typtests enthält, die als:
public class TestThing
{
[Display(Name = "String3", Prompt = "String4")]
public string Test1 { get; set; }
[Display(Name = "String5", Prompt = "String6")]
public string Test2 { get; set; }
}
Ich habe eine Editorteemplate für diesen Typ, in dem ich für jede der untergeordneten Eigenschaften auf die Meta -Daten zugreifen möchte. Wenn die Vorlage beispielsweise für eine Zeichenfolge vorhanden war, könnte ich auf den Eingabeaufforderungstext mit Verwendung zugreifen @ViewData.ModelMetadata.Watermark
, Aber weil es sich um einen komplexen Typ handelt, kann ich diese Methode nicht verwenden.
Gibt es eine Alternative?
Lösung
Sie können die Metadaten für jede Eigenschaft wie diese abrufen:
@{
var metadata = ModelMetadata
.FromLambdaExpression<TestThing, string>(x => x.Test2, ViewData);
var watermak = metadata.Watermark;
}
Andere Tipps
1) Schau dir das an.
@Html.TextBoxFor
(m => m.Test1 ,
new {
@placeholder =
@ModelMetadata.FromLambdaExpression
(m=>m.Test1 ,ViewData).Watermark.ToString()
}
)
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow