5

Ho un ViewModel che include una proprietà di tipo complesso TestThing che è dichiarato come:ModelMetadata per tipo complesso in editortemplate in asp.net mvc

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à figlio. Ad esempio, se il modello era per una stringa, potevo accedere al testo del prompt utilizzando @ViewData.ModelMetadata.Watermark, ma poiché è un tipo complesso, non posso utilizzare questo metodo.

C'è un'alternativa?

risposta

8

Si potrebbe prendere i metadati per ogni proprietà come questa:

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

1) controllare questo fuori.

@Html.TextBoxFor 
    (m => m.Test1 , 
     new { 
       @placeholder = 
       @ModelMetadata.FromLambdaExpression 
        (m=>m.Test1 ,ViewData).Watermark.ToString() 
      } 
    ) 
Problemi correlati