Ajax запрос в ASP.NET основные страницы бритвы - ничего не делать
Моя цель-динамически обновлять два поля каждый раз, когда происходит изменение выпадающего списка. В моем примере выпадающий список представляет собой список сотрудников, и мне нужно, чтобы поля группы/подгруппы обновлялись каждый раз, когда он меняется.
С помощью эта статья и другие, я пытаюсь вызвать созданный мной метод C#, который запускает 2 запроса linq и устанавливает результат в поля. Я убедился, что этот метод работает просто отлично. Это находится в разделе "Edit.cshtml.cs":
// Displays chosen employee's group and subgroup public ActionResult OnPostSearchCurrGroup() { var subgroupQuery = (from c in _context.ppcc_matrix from e in _context.employees from s in _context.subGroups where c.employeesID == e.Id where e.subGroupsID == s.Id select s.subgrp_nm).FirstOrDefault(); subGroups.subgrp_nm = subgroupQuery; var groupQuery = (from c in _context.ppcc_matrix from e in _context.employees from s in _context.subGroups from g in _context.groups where c.employeesID == e.Id where e.subGroupsID == s.Id where s.groupsID == g.Id select g.grp_nm).FirstOrDefault(); groups.grp_nm = groupQuery; return Page(); }
В моем файле "Edit.cshtml" у меня есть 3 поля:
<div class="form-group"> <label asp-for="ppcc_matrix.employeesID" class="control-label"></label> <select asp-for="ppcc_matrix.employeesID" class="form-control" id="employee" asp-items="ViewBag.employeesID"> <option disabled selected value="0" style="display:none">--select--</option> </select> </div> <div class="form-group"> <label asp-for="groups.grp_nm" id="grptxt">Group</label> <input asp-for="groups.grp_nm" id="grpnm" class="form-control" disabled /> </div> <div class="form-group"> <label asp-for="subGroups.subgrp_nm" id="subgrptxt">SubGroup</label> <input asp-for="subGroups.subgrp_nm" id="subgrpnm" class="form-control" disabled /> </div>
а потом мой javascript:
<script language="javascript" type="text/javascript"> var employee = document.getElementById('employee'); employee.addEventListener('change', UpdateGroup); function UpdateGroup() { $.ajax({ type: 'post', url: '/edit?handler=searchcurrgroup', contenttype: "application/json; charset=utf-8", datatype: 'json' }) } </script>
Проблема: он ничего не делает, когда я меняю поле сотрудника. Мой обработчик назван правильно, это метод onpost..
Он работает, если я устанавливаю его в качестве обработчика asp-страниц на кнопке, но, конечно, было бы более разумно использовать вызов ajax для автоматического отображения.
Что я уже пробовал:
Несколько статей такие как этот и код выше.