UIHint не работает под моделью DisplayTemplate
У меня есть модель MyModel
public class MyModel { [UIHint("Str")] public string Name {get;set;} }
В представлении я рендеринг модели с использованием
@Html.DisplayForModel("SomeTemplate")
Итак, модель использует SomeTemplate в качестве DisplayTemplate.
Таким образом, UIHint не отображается в SomeTemplate.
Есть ли какое-либо решение для визуализации UIHint в другом DisplayTemplate или это вообще невозможно,
1 ответ
У вас есть некоторые несоответствия в вашем коде.
Во-первых, UIHint используется для определения имени отображаемого шаблона для отображения заданного свойства, а не для добавления строки в отображаемый вывод.
Во-вторых, параметр для DisplayForModel не является именем шаблона отображения (он выбирается автоматически на основе соглашения по имени модели или определяется с помощью UIHint)
Итак, что вы можете сделать: предположим, что ваш класс модели называется MyClass
Создайте шаблон отображения с именем MyClass.cshtml в вашей папке DisplayTemplates
добавить "Str" внутри шаблона
вызовите DisplayForModel без параметра (учитывая, что модель в текущем представлении является тем же MyClass)
если я что-то неправильно понял, пожалуйста, укажите