У меня есть вид со списком флажков. Он отображается нормально, но на Post, счетчик = 0 для моего списка. Я видел кучу постов на SO, которые все говорят то же самое, что я и пытался, но это не работает, поэтому я должен что-то упустить.
Мои ViewModels:
public class ParentViewModel
{
public ParentViewModel()
{
ClassOfTradeList = new List<CheckBoxListItem>();
}
public string Name { get; set; }
public List<CheckBoxListItem> ClassOfTradeList { get; set; }
}
public class CheckBoxListItem
{
public long Id { get; set; }
public string Name { get; set; }
public bool IsSelected { get; set; }
}
Тогда мой View:
@model app.Models.ViewModels.ParentViewModel
// other parent fields
@for (int i = 0; i < Model.ClassOfTradeList.Count; i++)
{
@Html.CheckBoxFor(m => m.ClassOfTradeList[i].IsSelected)
@Html.HiddenFor(m => m.ClassOfTradeList[i].Id)
@Html.LabelFor(m => m.ClassOfTradeList[i].IsSelected, Model.ClassOfTradeList[i].Name)
<br />
}
My Post в контроллере:
public ActionResult ParentReturn(ParentViewModel model)
{
}
My Get:
[HttpGet]
public ActionResult Parent()
{
var model = new ParentViewModel();
//fill in properties here
model.ClassOfTradeList = ClassOfTradeList();
return View(model);
}
private List<CheckBoxListItem> ClassOfTradeList()
{
var classofTrades = _tradeRepo.GetAll().Where(c => c.IsDeleted == false).ToList();
var classOfTradeList = new List<CheckBoxListItem>();
classOfTradeList = classofTrades.Select(c => new CheckBoxListItem
{
Name = c.Name,
Id = c.Id
}).ToList();
return classOfTradeList;
}
Итак, когда я вернусь кконтроллер, модель. ClassOfTrades.Count = 0. Чего мне не хватает?