2015-01-13 91 views
5

我有添加css类到HTML.EditorFor()的问题。我在网上搜索是否有人遇到同样的问题,但我找不到任何东西。HTML.EditorFor添加类不工作

你能帮我吗?所以,它没有问题关于CSS没有定义的类,它是,但简单地说,它没有添加到输入字段。 这是鉴于代码:

@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> 

}

有什么建议?

+0

看到这个 [http://stackoverflow.com/questions/4576209/asp-net-mvc-3-razor-adding-class-to-editorfor] [1] [1]:http://stackoverflow.com/questions/4576209/asp-net-mvc-3-razor-adding-class-to-editorfor –

+0

我已经看到了这个,我的语法是正确的。我已经尝试了除了用jquery添加类之外的所有东西......如果我必须动态地添加类时它没有任何意义......这可能是某种错误或某种东西?或者我错过了一些东西...... – Veki

+0

@Veki所以你已经创建了一个自定义编辑器模板作为该问题中接受的答案说?你能为你的问题添加代码吗? – Rhumborl

回答

5

EditorFor在ASP.NET MVC 3不支持以这种方式将CSS传递到生成的HTML。您必须创建自定义编辑器模板并传递自定义ViewData条目并手动完成(如上面显示的链接答案所示)。

这已在MVC 5.1中得到纠正,但如果您不愿意创建自己的模板,则无法使用EditorFor在MVC 3中进行此项工作。

+0

5.1?好吧,现在我知道什么是问题,我在MVC 5.0上。非常感谢,我会看看是否要升级它以使其工作,否则我会将其更改为textboxfor。 – Veki

+0

@Veki如果你使用MVC 5,为什么你将问题标记为MVC 3? –

+0

如果我没有看到,我正在挑选他提供的内容,而且我想我的阅读不好。我现在会改变它。我很抱歉 – Veki

0

使用的文本框代替EditFor这里特殊的HTML属性不被支持,它只是从MVC支持5.文本框是应该MVC 4的支持,我不知道其他的版本。

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