5

我有一個視圖模型,其包括其被聲明爲類型TestThing的複雜屬性:ModelMetadata用於editortemplate在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; } 
} 

我有對這種類型的EditorTemplate中,我想能夠訪問每個子屬性的元數據。例如,如果模板是用於字符串的,則可以使用@ViewData.ModelMetadata.Watermark訪問提示文本,但由於它是複雜類型,因此我無法使用此方法。

是否有替代方案?

回答

8

你可以像這樣每個屬性獲取元數據:

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

1)檢查了這一點。

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