В чем разница между 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