代码之家  ›  专栏  ›  技术社区  ›  Hector Minaya

mvc2中helper的html.label

  •  2
  • Hector Minaya  · 技术社区  · 15 年前

    我正在使用MVC2,预览2。为什么我使用:

            <%= 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产生了额外的回报。

    3 回复  |  直到 15 年前
        1
  •  4
  •   John Polling    15 年前

    这真的很难回答。可以看到它正在生成的实际HTML标记。我怀疑标签是浮动的或者在CSS中显示:block。

        2
  •  0
  •   Justin Grant    15 年前

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

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

        3
  •  0
  •   Carlos Fernandes    15 年前

    您案例的HTML输出应该类似于: <label for="Nombres">Nombre</label> . 不 <br/> 是呈现的,所以唯一的答案应该在CSS中,如Justin所说。寻找附在“label”元素上的CSS样式,或者不太可能是与“nombres”相关的样式。