AJAX-запрос на основных страницах ASP.NET бритва - не обновление полей
(После внесения изменений на основе этот вопрос я задал вчера)
Моя цель-динамически обновлять два поля каждый раз, когда происходит изменение выпадающего списка. В моем примере выпадающий список представляет собой список сотрудников, и мне нужно, чтобы поля группы/подгруппы обновлялись каждый раз, когда он меняется. Я пытаюсь вызвать созданный мной метод C#, который запускает 2 запроса linq и устанавливает результат в поля. Я убедился, что этот метод работает правильно.
Теперь у меня есть следующий метод в моем файле "редактирование.HTML-код.в CS":
// Updates chosen specialist's group and subgroup [BindProperty] public GroupModel Group { get; set; } public class GroupModel { public string subGroup { get; set; } public string group { get; set; } } 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; var result = new GroupModel { subGroup = subgroupQuery, group = groupQuery }; return new JsonResult(result); }
У меня есть эти три поля в "Edit.cshtml":
<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="Group.group" id="grptxt">Group</label> <input asp-for="Group.group" id="grpnm" class="form-control" disabled /> </div> <div class="form-group"> <label asp-for="Group.subGroup" id="subgrptxt">SubGroup</label> <input asp-for="Group.subGroup" id="subgrpnm" class="form-control" disabled /> </div>
Используя три идентификатора, которые я им присвоил, я запускаю этот запрос javascript и ajax в одном файле:
@* Dynamically updates the view to show chosen specialist's group and subgroup*@ <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', data: '{}', async: 'true', success: function (data) { OnSuccessed(data.subGroup) { document.getElementById('subgrpnm').append(subgroupQuery); } OnSuccessed(data.group) { document.getElementById('grpnm').append(groupQuery); } } }) } </script>
Тем не менее, ничего не происходит, и я не получаю никаких ошибок.
Что я уже пробовал:
Несколько статей, представленных в качестве комментария к моему аналогичному предыдущему вопросу.
Эта статья была полезна, но выяснение того, как отображать результаты, сбивает меня с толку.
Dominic Burford
В какой момент запрос AJAX завершается неудачей? Вы попали в обработчик страниц бритвы? Ты бьешь метода успехи "Аякса"? Какой ответ получает ваш AJAX - запрос от обработчика страниц?