Mvc复选框列表添加到控制器

时间:2017-02-14 14:11:07

标签: asp.net-mvc

我想获得控制器的复选框列表。

 foreach (var item in Model.Billeder)
  {
    @Html.ValidationSummary(true, "", new { @class = "text-danger" })
    <div class="form-group">
        @Html.LabelFor(ModelItem => item.Overskrift, htmlAttributes: new { @class = "control-label col-md-2" }) @Html.DisplayFor(model => item.Overskrift)
        <div class="col-md-10">
            <div class="checkbox">
                @Html.EditorFor(ModelItem => item.Emailbool)
                @Html.ValidationMessageFor(ModelItem => item.Emailbool, "", new { @class = "text-danger" })
            </div>
        </div>
    </div>


}


    <div class="form-group">
        <div class="col-md-offset-2 col-md-10">
            <input type="submit" value="Send" class="btn btn-default" />
        </div>
    </div>

在tilbud我有一个

public virtual ICollection<Billed> Billeder { get; set; }

我想让它进入控制器,所以我可以对它们进行排序

public ActionResult MailTilbud(Tilbud tb)

1 个答案:

答案 0 :(得分:0)

for-each循环不起作用,因为复选框元素名称不能用索引正确创建,这会导致它不会回发到控制器中,所以将其更改为用于循环:< / p>

for (int i=0 i <Model.Billeder.Count; i++)
{
    @Html.ValidationSummary(true, "", new { @class = "text-danger" })
    <div class="form-group">
        @Html.LabelFor(ModelItem => Model.Billeder[i].Overskrift, htmlAttributes: new { @class = "control-label col-md-2" }) 
        @Html.DisplayFor(model => Model.Billeder[i].Overskrift)
        <div class="col-md-10">
            <div class="checkbox">
                @Html.EditorFor(ModelItem => Model.Billeder[i].Emailbool)
                @Html.ValidationMessageFor(ModelItem => Model.Billeder[i].Emailbool, "", new { @class = "text-danger" })
            </div>
        </div>
    </div>
}

您需要修改模型才能拥有IList<T>,因为ICollection<T>没有索引支持。

public virtual IList<Billed> Billeder { get; set; }

如果您的模型中的上述属性使用Entity Framework映射到表,那么您需要创建特定于View的ViewModel类而不是修改DTO模型。