У меня есть список проверки на странице редактирования продуктов, я хочу, чтобы список флажков был
проверяется в зависимости от значений в БД.
Например, я сохраняю значения в дБ как 1,2,3
Поэтому необходимо проверить список флажков со значением 1, значением 2, значением 3.
Ниже приведен код:
Контроллер:
public ActionResult Edit(int id)
{
ITrackdayRepository trackdayResp = new TrackdayRepository();
IQueryable<Object> getAllproducts = trackdayResp.GetProductsSelectlist();
ViewData["products"] = new SelectList(getAllproducts.ToList(), "productID", "Name");//all events for checkboxlist
IVoucherRepository voucherResp = new VoucherRepository();
Voucher voucher = voucherResp.GetVoucher(id);
return View(voucher);
}
//
// POST: /Admin/Voucher/Edit/5
[HttpPost]
public ActionResult Edit(int id, FormCollection collection)
{
try
{
// TODO: update the selected checkbox nd do db insert
return RedirectToAction("Index");
}
catch
{
return View();
}
}
Вид:
<tr>
<td>
<label>Products</label>
</td>
<td>
<% foreach (var item in (SelectList)ViewData["products"]) { %>
<input type="checkbox" name="Name" value="<%=item.Value %>" />
<label for="<%=item.Value%>"><%=item.Text%></label>
<br />
<% } %>
</td>
</tr>
изм:
<td>
<% foreach (var item in (SelectList)ViewData["events"]) { %>
<%var test = ViewData["arrays"]; %>
<%string checkString = test.ToString().Contains(item.Value) ? "checked=\"checked\"":string.Empty; %>
<input type="checkbox" name="Name" value="<%=item.Value %>" checked="<%=checkString %>" />
<label for="<%=item.Value%>"><%=item.Text%></label>
<br />
<% } %>
</td>