ModelMetadata per tipo complesso in editortemplate in asp.net mvc
-
26-10-2019 - |
Domanda
Ho un ViewModel che include una proprietà di tipo complesso TestThing che viene dichiarato come:
public class TestThing
{
[Display(Name = "String3", Prompt = "String4")]
public string Test1 { get; set; }
[Display(Name = "String5", Prompt = "String6")]
public string Test2 { get; set; }
}
Ho un EditorTemplate per questo tipo in cui vorrei essere in grado di accedere ai metadati per ciascuna delle proprietà secondarie. Se il modello è stato per una stringa, per esempio, ho potuto accedere al testo del prompt utilizzando @ViewData.ModelMetadata.Watermark
, ma perché è un tipo complesso, non posso usare questo metodo.
Esiste un'alternativa?
Soluzione
Si potrebbe prendere i metadati per ogni proprietà come questa:
@{
var metadata = ModelMetadata
.FromLambdaExpression<TestThing, string>(x => x.Test2, ViewData);
var watermak = metadata.Watermark;
}
Altri suggerimenti
1) Check this out.
@Html.TextBoxFor
(m => m.Test1 ,
new {
@placeholder =
@ModelMetadata.FromLambdaExpression
(m=>m.Test1 ,ViewData).Watermark.ToString()
}
)
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow