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?

War es hilfreich?

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
scroll top