我想知道是否在ASP.NET MVC 5中引入了一些新的帮助器或方法来实现级联下拉列表。我知道一种通过使用JSON调用在MVC 3和MVC 4中实现级联下拉列表行为的方法
所以有人知道在MVC 5中实现级联下拉列表的更好方法吗?
答案 0 :(得分:12)
我知道这是一个老问题,但有人仍然觉得它很有用
我正在寻找相同的东西,但是没有找到任何稳定和有用的东西,所以我最终自己实现了它:
请查看我创建的Mvc.CascadeDropDown帮助器。 它适用于从MVC3开始的所有MVC版本,不需要任何客户端库(它使用普通的JavaScript)。
用法非常简单:
@using Mvc.CascadeDropDown
//First simple dropdown
@Html.DropDownListFor(m=>m.SelectedCountry, Model.Countries,
"Please select a Country", new {@class="form-control"})
//Dropdown list for SelectedCity property that depends on selection of SelectedCountry property
@Html.CascadingDropDownListFor(
expression: m => m.SelectedCity,
triggeredByProperty: m => m.SelectedCountry, //Parent property that trigers dropdown data loading
url: Url.Action("GetCities", "Home"), //Url of action that returns dropdown data
actionParam: "country", //Parameter name for the selected parent value that url action receives
optionLabel: "Please select a City", // Option label
disabledWhenParrentNotSelected: true, //If true, disables dropdown until parrent dropdown selected
htmlAttributes: new { @class = "form-control" }) //Html attributes
希望对你们中的一些人有所帮助
答案 1 :(得分:2)
不,MVC 5中没有新的帮助器或方法可以提供帮助。
更新中基本上忽略了Ajax HTML帮助程序。有些事情可能有助于解决与此相关的事情:
@Html.EditorFor(m => m.FieldName, new { htmlAttributes = new { @class = "form-control" } })
我上周实施了级联下拉菜单,并使用了您提到的经过验证的真实JSON调用。我喜欢将this jQuery plugin与Web API v2结合使用,并使用新的属性路由。