Динамически генерировать параметры api url в действии jquery url для заполнения выпадающего списка
У меня есть вид в моем проекте VS, который имеет три раскрывающихся списка, 2 из которых являются каскадными и должны быть заполнены при изменении родительского элемента управления. Рабочий процесс у меня отлично работает для статических URL-вызовов, но мне нужно динамически добавлять данные, и мне не повезло. Ниже приведен рабочий статический раздел кода и одна из многих моих попыток заставить его работать динамически.
При необходимости приведенная ниже примерная иерархия данных представлена в порядке убывания: Элемент (например, еда), Тип (например, фрукты), Имя (например, банан).
Ценю любой вклад.
Рабочий статический код:
function dynamicTypeList() {
$.ajax({
url: '@Url.Action("", "api/types/1")',
success: function (data) {
$("#Type_Id").empty();
$("#Name_Id").empty();
$("#Type_Id").append("<option value>Select Type (NEW)</option>");
$("#Name_Id").append("<option value>Select Name (NEW)</option>");
for (var i in data) {
$("#Type_Id").append("<option value='" + (i + 1) + "'>" + $(data)[i] + "</option>");
}
}
});
};
Сломанный динамический код:
function dynamicTypeList() {
selItem = $("#Item_Number").val();
console.log(selItem);
$.ajax({
url: '@Url.Action("", "api/types/" + selItem)',
success: function (data) {
$("#Type_Id").empty();
$("#Name_Id").empty();
$("#Type_Id").append("<option value>Select Type (NEW)</option>");
$("#Name_Id").append("<option value>Select Name (NEW)</option>");
for (var i in data) {
$("#Type_Id").append("<option value='" + (i + 1) + "'>" + $(data)[i] + "</option>");
}
}
});
};
1 ответ
Предполагая, что "api" является контроллером, а "types" - действием, попробуйте заменить переменную url на:
url: '@Url.Action("types", "api")' + sellItem,
SellItem - это переменная JavaScript, которая должна полностью оставаться на клиенте. Или вы можете использовать эту технику, чтобы вы могли использовать естественную передачу параметров URL в пределах Url.Action
: