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?

È stato utile?

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