У меня проблемы с выяснением, почему не работает вызов ajax, который я делаю для получения файла Json. Я знаю, что этот вопрос задавали много, но кажется, что ни один из ответов не смог мне помочь, поэтому я начинаю новую тему здесь.
Я создаю раскрывающееся меню, где, если выбрановыполняется вызов базы данных, чтобы получить информацию, необходимую для всего моего сайта. Вот как я генерирую выпадающие элементы:
const dropDown = [];
var childElement, appendChildElement, parentElement;
// Add child elements
for (var i = 0; i < nameList.length; i++) {
dropDown.push({ id: numList[i], name: nameList[i]});
}
parentElement = document.getElementById('myDropdown');
// Add child elements
for (let item of dropDown) {
childElement = document.createElement('a');
appendChildElement = parentElement.appendChild(childElement);
appendChildElement.innerHTML = item.name;
appendChildElement.onclick = function () {
$.ajax({
method: "GET",
url: "/home/data/" + item.id,
type: "JSON"
}
).asServiceResult(true).done(function (result) {
alert(result);
}).fail(function (isCommunicationError) {
if (!isCommunicationError)
magalert.errorMessage("Couldn't load content");
});
};
//appendChildElement.addEventListener("click", item.onclick, false);
appendChildElement.id = item.id;
//appendChildElement.href = item.href;
}
Пока я просто проверяю это с помощью простого предупреждения, которое, как я знаю, не самая эффективная практика, но это легко. Я пытаюсь вызвать функцию данных в моем домашнем контроллере, которая выполняет следующее:
public IActionResult Data(int id)
{
AllChapterInformation allChapterInformation = new AllChapterInformation();
Chapter chapter = allChapterInformation.GetChapterInformation(id);
return Json(chapter);
}
Я попытался добавить [HttpGet] и поиграться с атрибутами. Я попытался изменить путь, тип, в основном любое решение по этой теме. И все же, результирующий путь при нажатии на выпадающий список всегда выдает Localhost / Undefined. Какие-либо предложения? Я чувствую, что упускаю что-то болезненно очевидное.