Я просто пытаюсь сделать несколько простых каскадных выпадающих списков. Один для списка стратегий (chantiers
), и у каждой стратегии есть проекты. Я перепробовал кучу учебников, код кажется нормальным, но второй выпадающий список никогда не работает.
Вот мой код:
[HttpGet]
public ActionResult Board()
{
List<Chantier> chantiers = db.Chantiers.Where(p => p.Strategy.code.Contains(DateTime.Now.Year.ToString())).ToList();
ViewBag.chantiers = new SelectList(chantiers, "id", "name");
return View();
}
[HttpPost]
public JsonResult GetProjects(int ChantierID)
{
var projectsDB = db.Projects.Where(p => p.id_chantier == ChantierID).ToList();
List<SelectListItem> projects = new List<SelectListItem>();
projects.Add(new SelectListItem { Text = "--Select State--", Value = "0" });
if (projectsDB != null)
{
foreach (var x in projectsDB)
{
projects.Add(new SelectListItem { Text = x.name, Value = x.id.ToString() });
}
}
return Json(new SelectList(projects, "Value", "Text", JsonRequestBehavior.AllowGet));
}
и представление:
<h1 class="anda-title">FIO</h1>
<div class="form-group">
@if (ViewBag.chantiers != null)
{
@Html.DropDownListFor(model => model.ChantierID, ViewBag.chantiers as SelectList, "--Selectionner un Chantier--", new { @class = "form-control" })
}
</div>
<div class="form-group">
@Html.DropDownListFor(model => model.ProjectID, new SelectList(string.Empty, "Value", "Text"), "--Selectionner un Projet--", new { @class = "form-control" })
</div>
<script src="~/Scripts/jquery-3.4.1.min.js"></script>
<script type="text/javascript">
$(document).ready(function () {
$("#ChantierID").change(function () {
$("#ProjectID").empty();
$.ajax({
type: 'POST',
url: '@Url.Action("GetProjects")',
dataType: 'json',
data: { ChantierID: $("#ChantierID").val() },
success: function (data) {
$.each(city, function (i, data) {
$("#ProjectID").append('<option value="'
+ data.Value + '">'
+ data.Text + '</option>');
});
},
error: function (ex) {
alert('Failed.' + ex);
}
});
return false;
})
});
</script>
Пожалуйста, помогите мне, это напрягает меня, я действительно не могу найти проблему. Большое спасибо: (