2009-11-06 2 views
2

Я использую MVC2, Preview 2. Почему, когда я использую:Html.LabelFor помощник в MVC2

 <%= Html.LabelFor(x => x.Nombres) %> 
     <%= Html.Encode(Model.Nombres) %> 

Он выдает:

Nombre: 
Sr. Fulano de Tal 

Но когда я использую:

 Nombres: 
     <%= Html.Encode(Model.Nombres) %> 

он выводит:

Nombre: Sr. Fulano de Tal 

Я не хочу возвращения после этикетки. Это мой CSS, который разрушает вещи, или это HTML.LabelFor, который производит дополнительный доход.

ответ

4

Это действительно сложно ответить. Не удалось увидеть фактическую разметку html, которую она производит. Я подозреваю, что метки либо плавают, либо отображаются: блок в css.

+0

Вы правы, это не имеет никакого отношения к методу Html.LabelFor ... Это с CSS. – hminaya

+2

просто быстрое примечание. Метки метки должны использоваться только вместе с элементами ввода. http://www.w3schools.com/tags/tag_label.asp –

0

View Source поможет вам узнать, какой правильный ответ здесь. Что такое HTML, созданный в каждом случае?

Я подозреваю, что здесь происходит то, что элемент HTML, сгенерированный Html.LabelFor, определен в вашем CSS как block element, что означает, что последующее содержимое начнется с новой строки. Если это то, что происходит, вы можете изменить CSS для этих элементов, чтобы использовать display:inline;, и они должны отображаться в той же строке, что и значение вашего поля. Вы также можете использовать атрибут CSS float для создания такого же эффекта, но с плавающей точкой, как правило, сложнее работать, чем display:inline.

0

Результат HTML для вашего случая должен быть примерно таким: <label for="Nombres">Nombre</label>. Нет <br/>, поэтому единственный ответ должен быть в CSS, как сказал Джастин. Ищите стили css, прикрепленные к элементам «label», или не так вероятно, что-то связанное с «Nombres».