【问题标题】:ModelMetadata for complex type in editortemplate in asp.net mvcasp.net mvc中编辑器模板中复杂类型的模型元数据
【发布时间】:2011-07-17 06:05:00
【问题描述】:

我有一个包含 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 访问提示文本,但因为它是一个复杂类型,我不能使用这种方法。

还有其他选择吗?

【问题讨论】:

    标签: asp.net-mvc asp.net-mvc-3 razor editortemplates modelmetadata


    【解决方案1】:

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

    @{
        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()
                  }
           )
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-12-22
        • 2011-08-14
        • 1970-01-01
        • 2015-04-05
        • 1970-01-01
        • 2017-07-01
        相关资源
        最近更新 更多