В настоящее время существует три раскрывающихся списка, которые каскадируются в зависимости от выбора.Эта часть работает нормально.
Контроллер ниже
namespace CascadingDropdownSample.Controllers
{
public class HomeController : Controller
{
CascadeSampleEntities2 cse = new CascadeSampleEntities2();
public ActionResult Index()
{
ViewBag.Cars = cse.Cars.ToList();
ViewBag.Models = cse.Models.ToList();
ViewBag.Colours = cse.Colours.ToList();
return View();
}
private IList<Model> GetModels(int id)
{
return cse.Models.Where(m => m.CarId == id).ToList();
}
private IList<Colour> GetColours(int id)
{
return cse.Colours.Where(c => c.ColourId == id).ToList();
}
[AcceptVerbs(HttpVerbs.Get)]
public JsonResult LoadModelsByCar(string id)
{
var modelList = this.GetModels(Convert.ToInt32(id));
var modelData = modelList.Select(m => new SelectListItem()
{
Text = m.ModelName,
Value = m.ModelId.ToString(),
});
return Json(modelData, JsonRequestBehavior.AllowGet);
}
[AcceptVerbs(HttpVerbs.Get)]
public JsonResult LoadColoursByModel(string id)
{
var colourList = this.GetColours(Convert.ToInt32(id));
var colourData = colourList.Select(c => new SelectListItem()
{
Text = c.ColourName,
Value = c.ColourId.ToString(),
});
return Json(colourData, JsonRequestBehavior.AllowGet);
}
public ActionResult About()
{
return View();
}
}
Я создал выпадающие списки в представлении индекса, которые показывают правильные значения для каскада.Теперь пытаемся использовать выбранные значения для отображения результатов поиска - не знаете, как это сделать?Как реализовать значения, выбранные в раскрывающемся списке, для отображения соответствующих данных из базы данных - есть идеи?Индекс просмотра
@model CascadingDropdownSample.Models.CascadeSampleEntities2
@{
ViewBag.Title = "Home Page";
}
<h2>Cars</h2>
}));
$.each(carData, function (index, itemData) {
select.append($('<option/>', {
value: itemData.Value,
text: itemData.Text
}));
});
});
});
$("#ddlModels").change(function () {
var idColour = $(this).val();
$.getJSON("/Home/LoadColoursByModel", { id: idColour },
function (modelData) {
var select = $("#ddlColours");
select.empty();
select.append($('<option/>', {
value: 0,
text: "Select a Colour"
}));
$.each(modelData, function (index, itemData) {
select.append($('<option/>', {
value: itemData.Value,
text: itemData.Text
}));
});
});
});
});
<p>
Select Car manufacture @Html.DropDownListFor(Model => Model.Cars, new SelectList(ViewBag.Cars as System.Collections.IEnumerable, "CarId", "CarName"),
new { id = "ddlCars" })
</p>
<p>
Select Car Model @Html.DropDownListFor(Model => Model.Models, new SelectList(Enumerable.Empty<SelectListItem>(), "ModelId", "ModelName"),
"Select a Model", new { id = "ddlModels" })
</p>
<p>
Select colur of car @Html.DropDownListFor(Model => Model.Colours, new SelectList(Enumerable.Empty<SelectListItem>(), "ColourId", "ColourName"),
"Select a Colour", new { id = "ddlColours" })
</p>
Любой совет будет оценен