使用Razor在ASP.NET MVC 4中防止@ Html.LabelFor之后的换行符

Sha*_*anc 8 asp.net-mvc html-helper 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>
}
Run Code Online (Sandbox Code Playgroud)

从上面的代码中,标签和文本框位于不同的行上.我想把它们组合在同一条线上,这样我就能拥有像...

@Html.LablFor(m => m.FirstName): @Html.TextBoxFor(m => m.FirstName)
Run Code Online (Sandbox Code Playgroud)

应该看起来像FirstName:_ __ _ __ _

提前致谢.

Dis*_*ile 12

一定有什么错你的CSS,因为<label><input>都是内联元素.它们出现在单独行上的唯一原因是,如果您的CSS将它们视为块元素,或者它们不能适合同一行内容.

演示jsFiddle:http://jsfiddle.net/tSFtJ/

  • 是的,删除"display:block"为我做了诀窍. (4认同)

小智 12

以下是我为此工作所做的工作(下面的代码片段).
查看模型

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

View.cshtml

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

重要的是: LabelFor(..)中的:
new {style ="display:inline;"}
.
奇迹般有效.