Итак, у меня есть эта форма с этим внутри
<div class="form-group">
@*<div class="form-check form-check-box">
@for (int i = 0; i < Model.Features.Count; i++)
{
<div class="form-check form-check-box">
<input class="form-check-input" type="checkbox" asp-for="@Model.Features[i].Selected" value="@Model.Features[i].Text">
<label class="form-check-label" asp-for="@Model.Features[i].Text">@Model.Features[i].Text</label>
</div>
}
</div>
И когда я отправляю форму и проверяю свойства SelectedListItem
, она выглядит так
введите описание изображения здесь
Хотя Selected
должно быть True
, потому что я это проверил. Все остальное, что находится в форме, публикуется нормально, например, ввод текста прекрасно связывается со свойством String Text внутри моей ProductModel, я считаю, что проблема заключается в том, как я использую свойства элемента флажка.
Итак Я вижу флажки, и я могу их проверять, et c, но когда я публикую форму, ничего, связанное с флажками, не применяется к ProductModel
public class ProductModel
{
public string Title { get; set; }
public IList<SelectListItem> Features { get; set; }
}
Вот как я показываю установку модели для представления
public IActionResult PostAd()
{
var model = new ProductModel
{
Features = new List<SelectListItem>()
{
new SelectListItem { Text = "Camera", Value = "Camera" },
new SelectListItem { Text = "Touch Screen", Value = "Touch Screen" }
}
};
return View(model);
}
Как правильно использовать флажки, чтобы при публикации формы данные поступали в модель? Это действие, которое запускается при публикации
[HttpPost]
public IActionResult CreateAd(ProductModel Product)
{
return View("Index");
}