1

私はかみそりのビューでasp.netmvc3を開発しています。また、足場テンプレートを使用して、関連するアクションメソッドとビューを自動的に生成します。しかし、私が直面している問題は、ビュー上でlableeditorfor入力フィールドが次のように2つの別々の行(それぞれ別々に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

4

3 に答える 3

2

マークアップを直接出力する t4 テンプレートを編集できます。スキャフォールディング ファイルは、マシンの次の場所にあります。

C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\ItemTemplates\CSharp\Web\MVC 3\CodeTemplates\AddView\CSHTML

.tt ファイルのリストが表示されます。これらは、自動出力された html を生成するために使用されるファイルです。要素がレイアウトされるデフォルトの方法が気に入らない場合は、変更してください。これらを変更すると、足場が永続的に変更されることを覚えておいてください。

于 2012-04-24T17:59:27.043 に答える
1

これがあなたが探しているものかどうかはわかりませんが、私の見解は次のとおりです。

    <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 を変更して float: left; を追加しました。各クラスに

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

.display-field, 
.editor-field {
margin: 0.5em 0 0 0;
float: left;
}
于 2012-04-24T16:09:01.130 に答える
0

In the default Site.css file that's created by Visual Studio (so \Your Project\Content\Site.css), under the /* forms */ section, you'll see the following:

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

Just change display: block; to display: inline;, and now all of your input fields will appear on the same line as the label.

于 2013-11-06T13:12:11.057 に答える