I have a class that contains a list of another class, however when I try and use the html helper CheckBoxFor I can't use it, and if I use the CheckBox html helper the model refused to pick it up leaving it null.
I'm at a lost how to fix it so any help would be appreciated please?
The root level class:
public class Roles
{
public Roles()
{
}
public string Role { get; set; }
public List<Suppliers> Suppliers { get; set; }
public string SuppliersDelimited { get; set; }
public List<SuppliersCheck> SupplierListing { get; set; } // The one I need to loop through
}
The sub level class:
public class SuppliersCheck
{
public SuppliersCheck()
{
}
public string Code { get; set; }
public string Name { get; set; }
public bool selected { get; set; }
}
My view code:
@model Project.OrdersExchange.MVC.Models.Roles
@{
ViewBag.Title = "Assign Roles";
}
<h2 class="page-header">
Assign Roles - @Model.Role
<a href="/Users/SupplierRoles" class="btn btn-default pull-right">
Back
</a>
</h2>
@using (Html.BeginForm(Model))
{
@Html.HiddenFor(x => x.Role)
@Html.HiddenFor(x => x.SuppliersDelimited)
<table>
@foreach(var sup in Model.SupplierListing)
{
<tr>
<td>
@Html.Label(sup.Name + "(" + sup.Code + ")", new { @class = "col-md-2 control-label" })
</td>
<td>
@Html.CheckBox("selected", new { value = sup.selected, @checked = sup.selected, @class = "form-control" })
@*@Html.CheckBoxFor(sup.selected, new { @class = "form-control"}) Will not work as the helper is looking for a bool within the role class *@
</td>
</tr>
}
</table>
<input type="submit" value="Submit" class="btn btn-default" />
}