8

这是我的代码。

@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>
}

从上面的代码中,标签和文本框位于不同的行上。我想将它们组合在同一条线上,这样我就可以拥有类似...

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

最终应该看起来像名字:_ __ _ __ _

提前致谢。

4

2 回答 2

12

你的 CSS 一定有问题,因为<label><input>都是内联元素。它们出现在不同行的唯一原因是您的 CSS 是否将它们视为块元素,或者它们不能放在同一行内容中。

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

于 2012-06-21T18:57:46.443 回答
12

这是我为使这项工作为我所做的工作(下面的代码片段)。
查看模型

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

查看.cshtml

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

重要的是: LabelFor(..) 中的
new { style="display:inline;"}

奇迹般有效。

于 2013-10-09T19:34:52.690 回答