Правильно, ребята.Мне нужны ваши мозги, так как я не могу найти способ сделать это правильно.
У меня есть модель представления:
public class EditUserViewModel
{
public User User;
public IQueryable<ServiceLicense> ServiceLicenses;
}
Пользователь не важен, поскольку я знаю, как с этим справиться.
ServiceLicenses имеет следующую реализацию:
public class ServiceLicense
{
public Guid ServiceId { get; set; }
public string ServiceName { get; set; }
public bool GotLic { get; set; }
}
Получение проверенного списка пользователей - это круто.Это работает как шарм.
<fieldset>
<legend>Licenses</legend>
@foreach (var service in Model.ServiceLicenses)
{
<p>
@Html.CheckBoxFor(x => service.GotLic)
@service.ServiceName
</p>
}
</fieldset>
Проблема, с которой я столкнулся, заключается в получении обновленного объекта ServiceLicenses с новыми проверенными сервисами обратно в HttpPost в моем контроллере.Для простоты, скажем, это выглядит так:
[HttpPost]
public ActionResult EditUser(Guid id, FormCollection collection)
{
var userModel = new EditUserViewModel(id);
if (TryUpdateModel(userModel))
{
//This is fine and I know what to do with this
var editUser = userModel.User;
//This does not update
var serviceLicenses = userModel.ServiceLicenses;
return RedirectToAction("Details", new { id = editUser.ClientId });
}
else
{
return View(userModel);
}
}
Я знаю, что использую CheckBox неправильно.Что мне нужно изменить, чтобы заставить serviceLicenses обновляться с установленными флажками в форме?