我怎么能执行脚手架自动生成的代码在我的asp.net MVC 3显示在同一行的标签和EditorFo

2019-10-16 15:13发布

我正在开发一个asp.net MVC 3 Razor视图,我还自动生成相关的操作方法和使用查看脚手架模板。 但我面临的问题是,在该视图的lableeditorfor输入字段将在两个单独的行(每一个单独显示Div )如下: -

<div class="editor-label">
            @Html.LabelFor(model => model.FirstName)
        </div>
        <div class="editor-field">
            @Html.EditorFor(model => model.FirstName)
            @Html.ValidationMessageFor(model => model.FirstName)
        </div>

那么,有没有办法做到的改变,迫使标签和输入框输入要显示在彼此的旁边,,而不需要在每个视图手动修改代码? BR

Answer 1:

您可以编辑T4模板标记直接输出。 脚手架文件可以在这里你的机器上找到:

C:\ Program Files文件(x86)的\微软的Visual Studio 10.0 \ Common7 \ IDE \的ItemTemplate \ CSHARP \网络\ MVC 3 \ CodeTemplates \ AddView \ CSHTML

你会看到的.TT文件的列表,这些是用来生成自动-输出HTML文件。 如果你不喜欢的默认方式,该元素奠定了,改变他们! 只要记住,改变这些会导致永久性的改变了支架。



Answer 2:

不知道这是你在找什么,但这里是我的看法:

    <div class="editor-label">
    @Html.LabelFor(model => model.Title)
    </div>
    <div class="editor-field">
    @Html.EditorFor(model => model.Title)
    @Html.ValidationMessageFor(model => model.Title)
    </div>

    <div class="editor-label">
    @Html.LabelFor(model => model.DateCreated)
    </div>
    <div class="editor-field">
    @Html.EditorFor(model => model.DateCreated)
    @Html.ValidationMessageFor(model => model.DateCreated)
    </div>

我修改这个CSS添加浮动:左; 于每个类别的

.display-label, 
.editor-label {
margin: 1em 0 0 0;
float: left;
}

.display-field, 
.editor-field {
margin: 0.5em 0 0 0;
float: left;
}


Answer 3:

在默认Site.css多数民众赞成由Visual Studio创建的文件(这样\Your Project\Content\Site.css ),下/* forms */节,你会看到以下内容:

label {
    display: block;
    font-size: 1.2em;
    font-weight: 600;
}

只要改变display: block;display: inline; ,现在所有的输入字段将出现在同一行上的标签。



文章来源: How can i enforce the scaffolding automatically generated code to display the Label and the EditorFor text field at the same line in my asp.net mvc 3