我创建了两个下拉列表,我想做的是让它们级联。这样第二个依赖于第一个。原因是因为我的数据库是这样布局的
****Car_iD Car_Name Car_drive**
1 Honda 2 wheel drive
2 Acura 4wheel drive
3 Toyota 2 wheel drive
4 Honda 4wheelDrive
如您所见,我有两个相同的 Car_Name,但 Car_drive 不同。因此,当用户单击第一个下拉列表时,他们将看到 Honda、Acura、Toyota……但如果他们选择 Honda,第二个下拉框会显示 2wheeldrive 和 4wheeldrive。
我的控制器看起来像这样:
public ActionResult Home()
{
ViewData["Car_Name"] = new SelectList(_context.Cars.Select(a => a.Car_Name).Distinct());
ViewData["Car_drive"] = new SelectList(_context.Cars.Select(a => a.Car_drive).Distinct());
}
我的视图看起来像这样
Choose an Car
<label for= "Car_Names"></label>
<%= Html.DropDownList("Car_Name" )%>
<label for= "Application_Names"></label>
<%= Html.DropDownList("Car_drive")%>
<input type = "submit" value ="Update" />
<% using(Html.BeginForm("Home", "Home")) { %>
<%}%>
我已经阅读了很多教程,但没有什么能真正接近。我接近 MVC Awesome 的东西,但我一直收到错误说 SelectableItem 缺少引用。任何有关实现此功能的帮助都会很棒。
更新 我已将此添加到我的控制器
public ActionResult CarNameChange(string Car_Name)
{
var car_drive = from env in _context.Cars
where env.Car_Name == Car_Name
select car_drive;
return Json(ViewData["Car_Drive"] = car_drive);
}
现在需要一些帮助来编写脚本以从控制器获取此信息。
<script type = "text/javascript">
$('#Car_Names').change(function(){
var selectedName = $(this).val();
$getJson('@Url.Action("