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

  1. Создайте шаблон отображения с именем MyClass.cshtml в вашей папке DisplayTemplates

  2. добавить "Str" внутри шаблона

  3. вызовите DisplayForModel без параметра (учитывая, что модель в текущем представлении является тем же MyClass)

если я что-то неправильно понял, пожалуйста, укажите

Другие вопросы по тегам