2016-11-18 76 views
-1

我在ASP.NET MVC5上动态填充下拉列表有问题。 让我们简化我的数据:在ASP.NET MVC中链接动态填充下拉列表?

public class Country { 
    public int Id {get;set;} 
    public string InternationalCode {get;set;} 
    public string Name {get;set;} 
    public virtual ICollection<City> Cities {get;set;} 
    ... 
} 
public class City{ 
    public int Id {get;set;} 
    public int CountryId {get;set;} 
    public string Name {get;set;} 
    ... 

} 

在我的控制器中我通过国家ASP.NET的标准下拉助手,并显示在该视图 - 在这里没有问题,感谢这个post。我的问题出现在这里 - 假设我在第一个下面有另一个下拉菜单。如何根据第一个下拉菜单的结果动态填充? 我在控制器中定义的方法如下:

public IEnumerable<City> GetCitiesFromCountry(int countryId) => db.Countries.Find(countryId).Cities; 

如何称呼它无需重新加载页面?我不能使用Angular \ Knockout这样的高级技术 - 只允许使用JavaScript \ jQuery \ Ajax。

+0

通过提供第一个下拉列表中的相关数据来调用后端代码的ajax调用。然后根据已传递的特定值过滤其他下拉数据。最后以Json形式返回数据,并使用jQuery构建下拉菜单,并通过已返回的数据填充下拉菜单 – Izzy

+0

另请参阅[此DotNetFiddle](https://dotnetfiddle.net/1bPZym)以获取完整的实现 –

回答

0

那么最简单的方法来做下拉级联应该是一个jQuery的Ajax调用。一旦你根据选择的ID选择第一个下拉列表,请执行json jquery ajax调用,获取下一个下拉列表所需的数据并填充它。您可以在控制器中编写mvc json结果操作以获取数据。