I have a viewmodel that looks like this:
public class SecurityProfileViewModel
{
public string SecurityProfileNum { get; set; }
public List<String> SecurityProfilePDRGroups { get; set; }
public List<WrReportConfiguration> SecurityProfilePDR { get; set; }
public List<String> SecurityProfileUDRGroups { get; set; }
public List<WrReportConfiguration> SecurityProfileUDR { get; set; }
}
The controller GET method looks like this:
// GET: /Admin/
public ActionResult ConfigureUserPermissions(string securityProfile)
{
ReportsConfigurationBuilder rcb = new ReportsConfigurationBuilder();
rcb.BuildSecurityProfileReportConfiguration(Convert.ToInt32(securityProfile));
SecurityProfileViewModel spvm = new SecurityProfileViewModel
{
SecurityProfileNum = securityProfile,
SecurityProfilePDRGroups = rcb.SecurityProfilePDRGroupsList,
SecurityProfilePDR = rcb.SecurityProfilePDRConfig,
SecurityProfileUDRGroups = rcb.SecurityProfileUDRGroupsList,
SecurityProfileUDR = rcb.SecurityProfileUDRConfig,
};
return View(spvm);
}
The view produces a list of reports with associated checkboxes. The code looks like this:
@model ClearWeighWebReporting.ViewModels.SecurityProfileViewModel
@{
ViewBag.Title = "ConfigureUserPermissions";
}
<p>Security Profile @Html.DisplayFor(modelItem => Model.SecurityProfileNum)</p>
@using (Html.BeginForm())
{
<p>Pre-defined Reports</p>
foreach (String pdrGroup in Model.SecurityProfilePDRGroups)
{
@Html.DisplayFor(modelItem => pdrGroup)
<table>
@foreach (ClearWeighWebReporting.Models.WrReportConfiguration pdrc in Model.SecurityProfilePDR)
{
if (pdrc.ReportGroup == pdrGroup)
{
<tr>
<td>
@Html.HiddenFor(modelItem => pdrc.ReportID)
@Html.DisplayFor(modelItem => pdrc.ReportTitle)
</td>
<td>
@Html.DisplayFor(modelItem => pdrc.ViewPermissionString)
@Html.CheckBoxFor(modelItem => pdrc.ViewPermission)
</td>
<td>
@Html.DisplayFor(modelItem => pdrc.EditPermissionString)
@Html.CheckBoxFor(modelItem => pdrc.EditPermission)
</td>
</tr>
}
}
</table>
}
... other view code
<input id="Submit1" type="submit" value="Submit" />
}
The view is rendered ok:
But when I check/uncheck values and submit the form the view model returned to the POST method is NULL:
debugger showing NULL view model
How do I get the checkbox values back in the view model? Is this a binding issue?