我正在开发一个asp.net MVC 3 Razor视图,我还自动生成相关的操作方法和使用查看脚手架模板。 但我面临的问题是,在该视图的lable
和editorfor
输入字段将在两个单独的行(每一个单独显示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
您可以编辑T4模板标记直接输出。 脚手架文件可以在这里你的机器上找到:
C:\ Program Files文件(x86)的\微软的Visual Studio 10.0 \ Common7 \ IDE \的ItemTemplate \ CSHARP \网络\ MVC 3 \ CodeTemplates \ AddView \ CSHTML
你会看到的.TT文件的列表,这些是用来生成自动-输出HTML文件。 如果你不喜欢的默认方式,该元素奠定了,改变他们! 只要记住,改变这些会导致永久性的改变了支架。
不知道这是你在找什么,但这里是我的看法:
<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;
}
在默认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