Каскадные выпадающие списки не работают в моем проекте ASP. NET MVC - PullRequest
0 голосов
/ 16 апреля 2020

Я просто пытаюсь сделать несколько простых каскадных выпадающих списков. Один для списка стратегий (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>

Пожалуйста, помогите мне, это напрягает меня, я действительно не могу найти проблему. Большое спасибо: (

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...