Uzyskaj wiele zaznaczonych pól wyboru w MVC
Mam ProductController, który składa się z metody Create.
Mój model :
public class ProductEntry
{
public Crescent.LinqModel.Product Products { get; set; }
public ProductSKU SKUs { get; set; }
public List<SelectListItem> pColors { get; set; }
public ProductEntry()
{
pColors = new List<SelectListItem>();
}
}
Utwórz metodę pobierania:
public ActionResult Create()
{
CrescentAdmin.Models.ProductEntry product = new CrescentAdmin.Models.ProductEntry();
var colors = _appData.GetProductColors().ToList();
for (int i = 0; i < colors.Count; i++)
{
if (i == 0)
product.pColors.Add(new SelectListItem { Value = colors[i].Name.ToString(), Text = colors[i].Name, Selected = true });
else
product.pColors.Add(new SelectListItem { Value = colors[i].Name.ToString(), Text = colors[i].Name });
}
return View(product);
}
te kolory chcę wypełnić listę pól wyboru, w których mogę wybrać wiele pól wyboru. działa poprawnie.
Utwórz post:
[HttpPost]
[ValidateInput(false)]
public ActionResult Create(CrescentAdmin.Models.ProductEntry entry, HttpPostedFileBase uploadFile)
{
//code to insert in two table
// required to fetch which checkboxes are selected ??
}
Utwórz widok:
@model CrescentAdmin.Models.ProductEntry
kod do wypełnienia listy pól wyboru:
<tr>
<td>
Product Colors
</td>
<td>
@if (Model.pColors != null && Model.pColors.Count > 0)
{
for (int i = 0; i < Model.pColors.Count; i++)
{
//if (Model.pColors[i])
//{
<input type="checkbox" value="@Model.pColors[i].Value" id="@Model.pColors[i].Value"/> @Model.pColors[i].Text <br />
@Html.HiddenFor(m => Model.pColors[i].Value);
@Html.HiddenFor(m => Model.pColors[i].Text);
@Html.HiddenFor(m => Model.pColors[i].Selected);
//}
//else
//{
// <input type="checkbox" value="@Model.pColors[i].Value" /> @Model.productColors[i].Name <br />
//}
}
}
@Html.ValidationMessageFor(model => model.SKUs.ProductColors)
</td>
</tr>
próbowałem tego kodu, ale nie mam szczęścia !!
wymagane do pobrania, które pola wyboru są zaznaczone? Proszę pomóż