设计编辑器模板

时间:2013-12-16 21:32:06

标签: asp.net-mvc asp.net-mvc-4

目前我有一个编辑器模板页面,其中包含以下代码:

@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="Categories_@iterator.ToString()__isChecked" name="Categories[@iterator.ToString()].isChecked" type="checkbox" value="@catChecked.ToString()" data-title="@catTitle" @if (catChecked) { Write("checked=checked"); }>
            <label for="Categories_@iterator.ToString()__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="Categories_@iterator.ToString()__Id" name="Categories[@iterator.ToString()].Id" type="hidden" value="@catId">
        </div>

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

然而,当我将数据发送回控制器时,新复选框dosent的值将被发回。我想知道是否可以通过编辑器模板来完成它。

1 个答案:

答案 0 :(得分:2)

问题是你试图用HTML解决显示问题,这显然是 HTML的目的;这是CSS的领域。将样式应用于样式表中的复选框,并将HTML设为。