2012-06-21 21 views
8

Aquí está mi código.Prevenir salto de línea después de @ Html.LabelPara En ASP.NET MVC 4 Usar Razor

@using (Html.BeginForm()) { 
@Html.ValidationSummary() 

<fieldset> 
    <legend>Registration Form</legend> 
    <ol> 
     <li> 
      @Html.LabelFor(m => m.FirstName) 
      @Html.TextBoxFor(m => m.FirstName) 
     </li> 
    </ol> 
</fieldset> 
} 

Desde el código anterior, la etiqueta y el cuadro de texto están en líneas separadas. Quiero combinarlos para estar en la misma línea para que pueda tener algo así como ...

@Html.LablFor(m => m.FirstName): @Html.TextBoxFor(m => m.FirstName) 

debe terminar pareciéndose nombre: _ __ _ __ _

Gracias de antemano.

+0

Puede lograr esto con CSS, pero necesitaremos ver su html. – jrummell

Respuesta

12

Debe haber algo mal con su CSS porque <label> y <input> son elementos en línea. La única razón por la que aparecerían en líneas separadas sería si su CSS los trata como elementos de bloque o si no caben en la misma línea de contenido.

Demo en jsFiddle: http://jsfiddle.net/tSFtJ/

+0

Voy a 'verificar eso, ni siquiera pensé en eso. Debe ser el CSS predeterminado de MS que hace eso. Gracias. –

+4

sí, eliminar "display: block" me sirvió. – Nirman

12

Aquí es lo que hice para hacer este trabajo para mí (fragmento de código a continuación).
Ver Modelo

<!-- language: c# --> 
[DataType(DataType.EmailAddress)] 
[Display(Name = "LabelEmail", ResourceType = typeof(Resources.GeneralResource))] 
public string EmailAddress { get; set; } 

View.cshtml

<!-- language-all: lang-html --> 
<div> 
    @Html.LabelFor(m => m.EmailAddress, new { style="display:inline;"}) 
    @Html.DisplayFor(m => m.EmailAddress) 
</div> 

la parte importante es la:
nueva {style = "display: inline;"}
en el LabelFor (..).
Funciona como un encanto.

+0

Esto también funcionó para mí en 'Html.BeginForm'. – starsplusplus

Cuestiones relacionadas