Asp.net 是否可以在视图中的两个DropDownList之间异步绑定数据?
我想使用ASP.NETMVC和JQuery实现以下效果Asp.net 是否可以在视图中的两个DropDownList之间异步绑定数据?,asp.net,jquery,asp.net-mvc,data-binding,drop-down-menu,Asp.net,Jquery,Asp.net Mvc,Data Binding,Drop Down Menu,我想使用ASP.NETMVC和JQuery实现以下效果 我有一个下拉列表,显示一个国家的列表。我希望这样,当我更改国家/地区的值时,它下面会出现一个新的下拉列表,显示原产国为特定选定公司的公司列表。问题是,我不想太依赖于控制器操作,因为我在一个“无头”视图的模板助手中使用它。我可以绑定它吗?我建议您创建一个操作,该操作将返回选定国家/地区所有公司的JSON表示: public class CompaniesController: Controller { public ActionRes
我有一个下拉列表,显示一个国家的列表。我希望这样,当我更改国家/地区的值时,它下面会出现一个新的下拉列表,显示原产国为特定选定公司的公司列表。问题是,我不想太依赖于控制器操作,因为我在一个“无头”视图的模板助手中使用它。我可以绑定它吗?我建议您创建一个操作,该操作将返回选定国家/地区所有公司的JSON表示:
public class CompaniesController: Controller
{
public ActionResult List(string countryId)
{
IEnumerable<Company> companies = Repository.GetCompanies(countryId);
// Let's assume that Company has two properties: Id and Name
return Json(companies);
}
}
@用户:请看这个关于写好标题的元讨论-谢谢,它很有效。不过,这给我的印象是一个临时解决方案。我仍然有点困惑如何构建通用的MVC扩展,就像Telerik称之为MVC扩展一样,就像以前的用户控件一样。我担心,如果我开始编写一个本应适用于许多情况的扩展,代码可能会变得混乱
<%= Html.DropDownListFor(x => x.Country, Model.Countries) %>
<%= Html.DropDownListFor(x => x.Company, Enumerable.Empty<SelectListItem>()) %>
$(function() {
$('select#Country').change(function() {
var countryId = $(this).val();
$.post('/companies/list', { countryId: countryId }, function(companies) {
var companiesSelect = $('select#Company');
// loop through the companies and fill the dropdown
$(companies).each(function(index, company) {
companiesSelect.append(
'<option value="' + company.Id + '">'
+ company.Name +
'</option>');
});
});
});
});