2015-01-13 21 views
5

HTML.EditorFor()にCSSクラスを追加する際に問題があります。誰かが同じ問題を抱えていても、ネット上で検索していましたが、何も見つかりませんでした。HTML.Editorクラスを追加できません。

私を助けてもらえますか?ですから、そのクラスが定義されていない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> 

}

任意の提案ですか? ASP.NET MVC 3で

+0

を参照してください。この [http://stackoverflow.com/questions/4576209/asp-net-mvc-3-razor-add-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は、このように生成されたHTMLにCSSを渡すことをサポートしていません。カスタムエディタテンプレートを作成し、カスタムViewDataエントリを渡して手動で実行する必要があります(上記のリンクされた回答が示すとおり)。

この

はMVC 5.1で修正されましたが、あなたは、独自のテンプレートを作成することを望んでいない場合EditorForとMVC 3で、この作品を作るための方法はありません。

+0

5.1?さて、私は問題が何であるか知っている、私はMVC 5.0です。どうもありがとう、私はそれを動作させるためにそれをアップグレードするかどうか、または私はそれをtextboxforに変更します。 – Veki

+0

@Veki MVC 5を使用している場合、なぜMVC 3としてマークしましたか? –

+0

私はそれを見ていない、私は彼が提供したものを選んでいた、と私は良いとは思わなかったと思う。私は今それを変更します。私は申し訳ありません – Veki

0

使用のTextBox代わりのEditForここでは特殊なHTMLの属性がサポートされていない、それが唯一のMVC 5.テキストボックスからサポートされているMVC 4のためにサポートしなければならないですが、私は他のバージョンのことは知りません。

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

簡単な方法はjqueryのを使用して、コントロールのID名を使用して追加され

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

Set the class attribute to Html.EditorFor

関連する問題