2009-11-06 53 views
2

我使用MVC2,预览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中显示:block。

+0

你是对的,这与Html.LabelFor方法无关...它与CSS。 – hminaya 2009-11-06 16:49:29

+2

只是一个简单的说明。标签标签只能与输入元素一起使用。 http://www.w3schools.com/tags/tag_label.asp – 2009-11-06 16:59:37

0

查看源代码将帮助您知道正确的答案在这里。每种情况下生成的HTML是什么?

我怀疑这里发生的事情是,Html.LabelFor生成的HTML元素在您的CSS中定义为block element,这意味着后续内容将从新行开始。如果发生了这种情况,您可以更改这些元素的CSS以使用display:inline;,它们应显示在与字段值相同的行上。您也可以使用float CSS属性来产生相同的效果,但浮动通常比display:inline更难以使用。

0

您的案例的HTML输出应该是这样的:<label for="Nombres">Nombre</label>。 没有<br/>被呈现,所以唯一的答案应该存在于CSS中,就像Justin说的那样。寻找附加到“标签”元素的css样式,或不太可能的,与“Nombres”相关的东西。