HTML.Editor To add a class does not work

I have a problem adding a css class to HTML.EditorFor (). I searched on the net if someone had the same problem, but I could not find anything.

Could you help me? So, his problem is not that this class is not defined, but it just is not added to the input field. This is the code in sight:

@model eVinogradarstvo.Models.DetaljiViewModel @{ ViewBag.Title = "Edit"; } @using (Html.BeginForm("PromijeniPodatke", "KorisnikDetalji", FormMethod.Post, new { enctype = "multipart/form-data",@class="form-horizontal" })) { @Html.AntiForgeryToken() <div class="col-sm-12"> @Html.ValidationSummary(true) @Html.HiddenFor(model => model.kd.id) @Html.HiddenFor(model => model.kd.korisnik_id) @Html.HiddenFor(model => model.kd.slika) @Html.HiddenFor(model => model.kd.dokument_id) <table class="table table-responsive"> <tr> <td>Slika profila</td> <td><input type="file" name="uploadImages" class="input-files" /></td> </tr> <tr> <td>@Html.DisplayNameFor(model => model.kd.ime)</td> <td> @Html.EditorFor(model => model.kd.ime, new { htmlAttributes = new { @class = "form-control" } }) @Html.ValidationMessageFor(model => model.kd.ime) </td> </tr> <tr> <td>@Html.DisplayNameFor(model => model.kd.prezime)</td> <td> @Html.EditorFor(model => model.kd.prezime, new { @class = "form-control" }) @Html.ValidationMessageFor(model => model.kd.prezime) </td> </tr> <tr> <td>@Html.DisplayNameFor(model => model.kd.adresa)</td> <td> @Html.EditorFor(model => model.kd.adresa, new { @class = "form-control" }) @Html.ValidationMessageFor(model => model.kd.adresa) </td> </tr> <tr> <td>@Html.DisplayNameFor(model => model.kd.grad)</td> <td> @Html.EditorFor(model => model.kd.grad) @Html.ValidationMessageFor(model => model.kd.grad) </td> </tr> <tr> <td>@Html.DisplayNameFor(model => model.kd.drzava)</td> <td> @Html.EditorFor(model => model.kd.drzava) @Html.ValidationMessageFor(model => model.kd.drzava) </td> </tr> <tr> <td>@Html.DisplayNameFor(model => model.kd.datum_rodenja)</td> <td> @Html.EditorFor(model => model.kd.datum_rodenja) @Html.ValidationMessageFor(model => model.kd.datum_rodenja) </td> </tr> <tr> <td>Mjerna jedinica težine</td> <td> @Html.DropDownListFor(model => model.kd.mj_tezine, new SelectList(Model.DDLtezina, "vrijednost", "opis")) @Html.ValidationMessageFor(model => model.kd.mj_tezine) </td> </tr> <tr> <td>Mjerna jedinica tekućine</td> <td> @Html.DropDownListFor(model => model.kd.mj_tekucine, new SelectList(Model.DDLtekucina, "vrijednost", "opis")) @Html.ValidationMessageFor(model => model.kd.mj_tekucine) </td> </tr> <tr> <td></td> <td><input type="submit" value="Spremi" class="btn btn-default" /></td> </tr> </table> </div> 

}

Any suggestions?

+5
source share
3 answers

EditorFor ASP.NET MVC 3 does not support passing CSS to generated HTML in this way. You must create your own template for the template and transfer the custom ViewData entries and do it manually (as shown in the links above).

This has been fixed in MVC 5.1, but there is no way to make this work in MVC 3 with EditorFor if you do not want to create your own templates.

+5
source

an easy way is to use jquery and add using a control id name

 $(document).ready(function () { $('#LastName').addClass('form-control'); }); 

Set the class attribute in Html.EditorFor

+1
source

Use TextBox instead of EditFor , here special html attributes are not supported, supported only with MVC 5. TextBox should support MVC 4, I don’t learn about another version.

 @Html.TextBox("test", "", new { @id = "signupform", @class = "form-control", @role = "form",@placeholder="Name" }) 
0
source

Source: https://habr.com/ru/post/1211001/


All Articles