5

我有一个包含 TestThing 类型的复杂属性的视图模型,该属性声明为:

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,但因为它是一个复杂类型,我不能使用这种方法。

有替代方案吗?

4

2 回答 2

8

您可以像这样获取每个属性的元数据:

@{
    var metadata = ModelMetadata
        .FromLambdaExpression<TestThing, string>(x => x.Test2, ViewData);
    var watermak = metadata.Watermark;
}
于 2011-03-17T09:39:10.637 回答
2

1)检查一下。

@Html.TextBoxFor
     (m => m.Test1 , 
        new {  
              @placeholder =  
              @ModelMetadata.FromLambdaExpression 
                  (m=>m.Test1 ,ViewData).Watermark.ToString()
            }
     )
于 2012-03-26T18:01:19.157 回答