C# 如何使用ajax根据从另一个dropdownlist中选择的值更改dropdownlist中的选项?
在用户从单独的dropdownlist中选择一个选项后,我使用ajax通过一个更改事件更改dropdownlist中的选项,但它根本不会更改选项。这是我的ajax代码,它似乎工作得很好C# 如何使用ajax根据从另一个dropdownlist中选择的值更改dropdownlist中的选项?,c#,javascript,jquery,ajax,asp.net-mvc-4,C#,Javascript,Jquery,Ajax,Asp.net Mvc 4,在用户从单独的dropdownlist中选择一个选项后,我使用ajax通过一个更改事件更改dropdownlist中的选项,但它根本不会更改选项。这是我的ajax代码,它似乎工作得很好 $(document).ready(function () { // if user changes paper type $('#paperTypeJList').change(function () { var modelData = {
$(document).ready(function () {
// if user changes paper type
$('#paperTypeJList').change(function () {
var modelData = {
paperType: $("#paperTypeJList").val(),
urgency: $("#urgencyJList").val(),
numOfPages: $("#numOfPagesJList").val()
};
$.ajax({
url: '@Url.Action("changeDropDownValues", "Home")',
type: "GET",
data: {paperType:modelData.paperType},
cache: false,
async: true,
success: function (response) {
alert("Success");
}
});
});
下面是我用ajax代码调用的方法的代码
public void changeDropDownValues(string paperType)
{
List<SelectListItem> urgencyList1 = new List<SelectListItem>();
urgencyList1.Add(new SelectListItem() { Text = "Select the Urgency", Value = "", Selected = true });
urgencyList1.Add(new SelectListItem() { Text = "60 Days", Value = "60", Selected = false });
urgencyList1.Add(new SelectListItem() { Text = "30 Days", Value = "30", Selected = false });
urgencyList1.Add(new SelectListItem() { Text = "20 Days", Value = "20", Selected = false });
urgencyList1.Add(new SelectListItem() { Text = "10 Days", Value = "10", Selected = false });
urgencyList1.Add(new SelectListItem() { Text = "7 Days", Value = "7", Selected = false });
urgencyList1.Add(new SelectListItem() { Text = "5 Days", Value = "5", Selected = false });
urgencyList1.Add(new SelectListItem() { Text = "4 Days", Value = "4", Selected = false });
urgencyList1.Add(new SelectListItem() { Text = "72 Hours", Value = "72", Selected = false });
urgencyList1.Add(new SelectListItem() { Text = "48 Hours", Value = "48", Selected = false });
urgencyList1.Add(new SelectListItem() { Text = "24 Hours", Value = "24", Selected = false });
urgencyList1.Add(new SelectListItem() { Text = "12 Hours", Value = "12", Selected = false });
urgencyList1.Add(new SelectListItem() { Text = "6 Hours", Value = "6", Selected = false });
urgencyList1.Add(new SelectListItem() { Text = "3 Hours", Value = "3", Selected = false });
List<SelectListItem> urgencyList2 = new List<SelectListItem>();
urgencyList2.Add(new SelectListItem() { Text = "Select the Urgency", Value = "", Selected = true });
urgencyList2.Add(new SelectListItem() { Text = "10 Days", Value = "10", Selected = false });
urgencyList2.Add(new SelectListItem() { Text = "7 Days", Value = "7", Selected = false });
urgencyList2.Add(new SelectListItem() { Text = "5 Days", Value = "5", Selected = false });
urgencyList2.Add(new SelectListItem() { Text = "4 Days", Value = "4", Selected = false });
urgencyList2.Add(new SelectListItem() { Text = "72 Hours", Value = "72", Selected = false });
urgencyList2.Add(new SelectListItem() { Text = "48 Hours", Value = "48", Selected = false });
urgencyList2.Add(new SelectListItem() { Text = "24 Hours", Value = "24", Selected = false });
urgencyList2.Add(new SelectListItem() { Text = "12 Hours", Value = "12", Selected = false });
urgencyList2.Add(new SelectListItem() { Text = "6 Hours", Value = "6", Selected = false });
urgencyList2.Add(new SelectListItem() { Text = "3 Hours", Value = "3", Selected = false });
switch (paperType)
{
case "Dissertation":
ViewBag.urgency = new SelectList(urgencyList1, "Value", "Text");
break;
case "Research Proposal":
ViewBag.urgency = new SelectList(urgencyList1, "Value", "Text");
break;
default:
ViewBag.urgency = new SelectList(urgencyList2, "Value", "Text");
break;
}
}
如果您使用的是WebForms,则应使用Asp.net AJAX控件工具包的级联DropDownList:
这是一个
更新:
如果您在asp.net mvc中工作,可以通过以下方式实现级联下拉列表:
这就是我需要的,但是你知道asp.NETMVC4的教程吗?我不能让他们的代码工作,因为它是older@FranklinJosephMoormannMVC不再真正需要Ajax控件工具包。尽管该工具包很有用,但ASP.NETMVC有很多工具可以本机实现AJAX驱动的行为。提示:ASP.NETMVC是一个非常重要的问题标签。如果没有它,通常认为常规ASP.Net就是解决问题的方法。是的@Flater这就是我编辑并提供webforms和mvcI的原因,MVC回复了原始海报,并补充说MVC可以很好地处理所有类型的Ajax内容。完整标记的重要性:为了清晰起见,编辑了我之前的评论。