Tengo problemas para elegir cada categoría, no puedo mostrar el libro de cada categoría. Mi código de índice aquí
@using (Html.BeginForm("Index", "BorrowBook", FormMethod.Post, new { name = "demoForm" })) { @Html.DropDownList("id_category", (IEnumerable<SelectListItem>)ViewBag.listTest, "-- Select Category --", new { onchange = "SelectedIndexChanged()" }) <div> Show list of book in the middle </div> } // GET: BorrowBook public ActionResult Index(string mess) { var query = context.categories.Select(c => new { c.id_category, c.name }); var userInfomatiom = (LibraryAsp.Models.User)Session["USER"]; if (userInfomatiom.Role.id_role == 1) { ViewBag.listP = publisherDao.getAll(); ViewBag.listC = categoryDao.getAll(); ViewBag.list = bookDao.getAll(); ViewBag.listTest = new SelectList(query.AsEnumerable(), "id_category", "name"); ViewBag.mes = mess; return View(); } else { return RedirectToAction("Error", "Home"); } } [HttpPost] public ActionResult Index (Category category) { ViewBag.listP = publisherDao.getAll(); ViewBag.listC = categoryDao.getAll(); ViewBag.list = context.books.Where(p => p.id_category == category.id_category).ToList(); return View(); } Al depurar, encontré que la categoría, el formulario o el valor de identificación se cargan así
Pero cuando elijo cada categoría, obtengo un error como ese:
Creo que mi script Java está teniendo problemas. Pero no puedo entender esto. Alguien me puede ayudar, muchas gracias.
Resuelva el problema, es malo que me olvide de pasar los datos. debería ser así
[HttpPost] public ActionResult Index (Category category) { var query = context.categories.Select(c => new { c.id_category, c.name }); ViewBag.listP = publisherDao.getAll(); ViewBag.listC = categoryDao.getAll(); ViewBag.list = context.books.Where(p => p.id_category == category.id_category).ToList(); ViewBag.listTest = new SelectList(query.AsEnumerable(), "id_category", "name"); return View(); }