В чем разница между Html.Label и Html.Display?

В чем разница между Html.Label и Html.Display?

Ответы

Ответ 1

Html.Label() отображает разметку HTML <label />, которая может использоваться для attrubute объекта модели.

Например,

<%= Html.Label("Full Name", Model.FullName) %>

отобразит

 <label for="FullName">Full Name </label>

Html.Display(), с другой стороны, делает разметку HTML для всей сущности на основе указанных шаблонов. Напр. если у вас есть объект Person с несколькими атрибутами, вы определяете шаблон с разметкой о том, как визуализировать Person, а Html.Display() использует этот шаблон для визуализации объектов Person в разных представлениях. Фил Хаак имеет отличное сообщение в шаблонах отображения.

Ответ 2

Ярлык

Возвращает элемент метки HTML и имя свойства свойства, которое представлено указанным выражением.

Дисплей

Возвращает разметку HTML для каждого свойства объекта, представленного строковым выражением.

Ответ 3

Html.Display является более динамичным, он генерирует разную разметку HTML в зависимости от типа данных отображаемого свойства и в зависимости от того, помечено ли свойство определенными атрибутами. Метод отображает разметку в соответствии со следующими правилами:

Если свойство набирается как примитивный тип (целое число, строка и т.д.), метод отображает строку, которая представляет значение свойства.

Если свойство аннотируется с атрибутом типа данных, атрибут указывает разметку, сгенерированную для свойства. Например, если свойство помечено атрибутом EmailAddress, метод генерирует разметку, содержащую привязку HTML, которая настроена с протоколом mailto, как показано в следующем примере:

<a href='mailto:[email protected]'>[email protected]</a>

Если объект содержит несколько свойств, для каждого свойства метод генерирует строку, состоящую из разметки для имени свойства и значения свойства.

Html.Label просто генерирует тег метки, такой как Male