web-dev-qa-db-ja.com

MVC5とBootstrap3:Html.EditorForクラスが間違っていますか?変更する方法?

MVC 5がEditorForを使用する場合、入力フィールドに別のクラスを使用していることに気づきました。私はそれがブートストラップのより低いバージョンからのものだと思うので、現在のクラスは実際には足し合わない。

私はこれについて話している:

<div class="form-group">
    @Html.LabelFor(model => model.Contact.CellphoneNo, new { @class = "control-label col-md-4"})
       <div class="col-md-8">
           @Html.EditorFor(model => model.Contact.CellphoneNo)
           @Html.ValidationMessageFor(model => model.Contact.CellphoneNo)
       </div>
</div>

これの結果:

<div class="form-group">
    <label class="control-label col-md-4" for="Contact_CellphoneNo">CellphoneNo</label>
    <div class="col-md-8">
        <input class="text-box single-line" id="Contact_CellphoneNo" name="Contact.CellphoneNo" type="text" value="">
        <span class="field-validation-valid" data-valmsg-for="Contact.CellphoneNo" data-valmsg-replace="true"></span>
    </div>
</div>

タグを見ると、Bootstrap3の"form-control"の代わりに"text-box"クラスがあります。

これは、MVC5がBootstrap 3でギリギリか何かに切り替わったためです。


質問は:そのクラスを手動で変更するにはどうすればよいですか?テキストボックスをフォームコントロールに変更できるようにしたい。コードは本当に見つかりません。

私もこれをすでに試しました

@Html.EditorFor(model => model.CivilStatus, new { @class = "form-control" })
@Html.ValidationMessageFor(model => model.CivilStatus)

うまくいかないようです。私は困惑しています。何か案は?

前もって感謝します!

18
Dominic

EditorForは、HTML属性をパラメーターとして受け入れません。使用しているパラメータは実際にはadditionalViewDataです

代わりにTextBoxForを使用してください

@Html.TextBoxFor(m => m.UserName, new { @class = "form-control" })

編集

MVC 5.1以降、この構文を使用してHTML属性をEditorTemplateに渡すことができます

@Html.EditorFor(m => m.UserName, new { htmlAttributes = new { @class = "form-control" } })
51
LostInComputer

MVC 5以前のバージョンを使用している場合は、@Html.TextBoxFor の代わりに @Html.EditorFor次のコードで指定されています。

@Html.TextBoxFor(model => model.CivilStatus,new { @class = "form-control" }

また、それをknockout.js modelview属性にバインドする必要がある場合:

@Html.TextBoxFor(model => model.CivilStatus, new { data_bind="value: author.civilStatus", @class = "form-control" })

私はMVC4でこれを使用しました、それは私のために働いています:

@Html.TextBoxFor(model => model.FirstName, new { data_bind="value: author.firstName", @class = "form-control" })
0
user5759686