2013-12-16 75 views
0

目前,我有它具有代碼編輯器模板頁面:設計一個編輯模板

@model Comics.Models.LocalComicCategoriesModel 

@Html.LabelFor(x => x.Title, Model.Title) 
@Html.CheckBoxFor(x => x.isChecked) 
@Html.HiddenFor(x => x.Id) 

這是我從不同的頁面調用具有:

@Html.EditorFor(x => x.Categories) 

當模板被輸出,我只是得到沒有設計它笨重的HTML喜歡: enter image description here

我想是這樣的: enter image description here

我可以通過執行實現這一點:當我將數據發送回控制器然而

@model IEnumerable<Comics.Models.LocalComicCategoriesModel> 

<div id="checkbox-list"> 
    @for (int iterator = 0; iterator < Model.Count(); iterator++) 
    { 
     if ((iterator % 6) == 0 || iterator == 0) 
     { 
      @Html.Raw("<div class='checkboxes_cont' style='float: left;'>"); 
     } 


     string catTitle = Model.ElementAt(iterator).Title; 
     bool catChecked = Model.ElementAt(iterator).isChecked; 
     string catId = Model.ElementAt(iterator).Id.ToString(); 

     <div class="itemtest" style="width: 100px;"> 
      <input id="[email protected]()__isChecked" name="Categories[@iterator.ToString()].isChecked" type="checkbox" value="@catChecked.ToString()" data-title="@catTitle" @if (catChecked) { Write("checked=checked"); }> 
      <label for="[email protected]()__Title">@catTitle</label> 
      <input name="Categories[@iterator.ToString()].isChecked" type="hidden" value="false"> 
      <input data-val="true" data-val-number="The field Id must be a number." id="[email protected]()__Id" name="Categories[@iterator.ToString()].Id" type="hidden" value="@catId"> 
     </div> 

     if ((iterator % 6) == 5 || iterator == Model.Count() - 1) 
     { 
      @Html.Raw("</div>") 
     } 
    } 
</div> 

,對於新的複選框值dosent送回到。我想知道是否可以通過編輯器模板來完成。

回答

2

問題是你試圖用HTML解決顯示問題,其中重點是而不是 HTML的目的;這是CSS的領域。將樣式應用於樣式表中的複選框,並讓HTML代替。

+0

我從來沒有這樣想過。謝謝你,我明白了。 –