gpt4 book ai didi

c# - 在更改第一个 ddl 时使用 jquery ajax 绑定(bind)下拉列表

转载 作者:太空狗 更新时间:2023-10-29 22:32:53 25 4
gpt4 key购买 nike

我有两个下拉列表,在更改第一个下拉列表时我想在 ajax 中填充第二个下拉列表。我在 ajax 中获取 SelectListItem 如何将其传递给下拉列表以绑定(bind)它?

查看:

                @Html.DropDownList("FirstID", ViewBag.Groups as IEnumerable<SelectListItem> )

@Html.DropDownList("SecondID", ViewBag.Policies as IEnumerable<SelectListItem>)

View 中的 Ajax 方法:

$(function () {
$('#FirstID').change(function () {
var selectedValue = $(this).val();
$.ajax({
url: '@Url.Action("BuildSecondDropDownLists", "controller")',
type: "POST",
data: { id: selectedValue },
error: function (xhr, ajaxOptions, thrownError) {
alert(xhr.status);
alert(thrownError);
},
success: function (result) {
alert(result);
//here how i can bind second drop down list

}
});
});
});

Controller :

  public IEnumerable<SelectListItem> BuildSecondDropDownLists(int id)
{

Pol = new SelectList(GetData(), "SecondID", "Name");


ViewBag.Pol = Pol;

return Pol;
}

最佳答案

首先修复您的 Controller 操作,使其返回 JSON 而不是一些 IEnumerable<SelectListItem> .请记住,在 ASP.NET MVC 中, Controller 操作必须返回 ActionResults:

public ActionResult BuildSecondDropDownLists(int id)
{
var result = GetData();
return Json(result, JsonRequestBehavior.AllowGet);
}

然后遍历返回的元素并将它们附加到第二个下拉列表中:

success: function (result) {
var secondDdl = $('#SecondID');
secondDdl.empty();
$.each(result, function() {
secondDdl.append(
$('<option/>', {
value: this.SecondID,
html: this.Name
})
);
});
}

关于c# - 在更改第一个 ddl 时使用 jquery ajax 绑定(bind)下拉列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16897146/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com