ModelMetAdata для комплексного типа в EditorTemplate в ASP.NET MVC
-
26-10-2019 - |
Вопрос
У меня есть ViewModel, которая включает в себя сложное свойство тестирования типа, которое объявляется:
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
, но поскольку это сложный тип, я не могу использовать этот метод.
Есть альтернатива?
Решение
Вы можете получить метаданные для каждого свойства, как это:
@{
var metadata = ModelMetadata
.FromLambdaExpression<TestThing, string>(x => x.Test2, ViewData);
var watermak = metadata.Watermark;
}
Другие советы
1) Проверьте это.
@Html.TextBoxFor
(m => m.Test1 ,
new {
@placeholder =
@ModelMetadata.FromLambdaExpression
(m=>m.Test1 ,ViewData).Watermark.ToString()
}
)
Не связан с StackOverflow