级联下拉列表MVC 3 C#
我创建了两个下拉列表,我想要做的是让它们级联。 这样第二个依赖于第一个。 原因是因为我的数据库是这样布局的
****Car_iD Car_Name Car_drive** 1 Honda 2 wheel drive 2 Acura 4wheel drive 3 Toyota 2 wheel drive 4 Honda 4wheelDrive
正如你所看到的,我有两个相同的Car_Names,但Car_drive是不同的。 因此,当用户点击第一个下拉列表时,他们将看到本田,讴歌,丰田……但如果他们选择本田,则第二个下拉框将显示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
我已阅读了这么多教程,但没有什么真正接近。 我接近MVC Awesome的东西,但我一直收到错误,说SelectableItem缺少引用。 任何有关实现此function的帮助都会很棒。
更新我已将此添加到我的控制器
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); }
现在需要一些帮助编写脚本以从控制器获取此信息。
$('#Car_Names').change(function(){ var selectedName = $(this).val(); $getJson('@Url.Action("
检查: http : //blogs.msdn.com/b/rickandy/archive/2012/01/09/cascasding-dropdownlist-in-asp-net-mvc.aspx和https://msprogrammer.serviciipeweb.ro/2011/ 02/13 / asp-net-mvc-jquery-and-razor-cascading-dropdown-retrieval-partial-views-json-send-objects-handling-errors /你不需要任何其他东西。 这两个项目都有一个下载的示例来检查代码。
问候
编辑:更新后
不要使用ViewData或ViewBag。 制作包含Cars和CarDrive属性的ViewModel,它更清晰,更容易添加新内容。
使用一些客户端jQuery脚本,只要有人更改选择,就会触发Car_Name
下拉列表。
//Use your DOM identifier here. I don't know what it's called. $('#car_name').change(function() { //Magic here. });
现在你要做的是,当这个事件被触发时,触发一个值为Car_Name
的AJAX请求。
让你的ActionMethod返回一个JsonResult
。
然后,您可以在客户端捕获该信息,并解析数据以将选择选项插入到下拉列表Car_Drive
。
这就是你需要做的事情,分解成易于理解的小块。
上述就是C#学习教程:级联下拉列表MVC 3 C#分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!
本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。
ctvol管理联系方式QQ:251552304
本文章地址:https://www.ctvol.com/cdevelopment/992314.html