razor - 在 ASP.NET MVC 5中,Razor 级联下拉列表

  显示原文与译文双语对照的内容
128 4

我想知道在 ASP.NET helper 5中引入了一些新的或者方法来实现级联下拉列表。我知道在 3和 MVC 4中实现级联dropdownlist行为的方法,这是使用JSON调用

http://www.dotnet-tricks.com/Tutorial/mvc/HL53191212-Custom-Validation-for-Cascading-Dropdownlist-in-MVC-Razor.html

因此,任何人都知道在 dropdownlists 5中实现级联的更好方法?

时间:原作者:0个回答

87 2

我知道这是个老问题,但仍然有人可能会发现

我正在寻找同样的东西,但没有找到任何稳定和有用的东西,所以我最终自己实现了它:

请看一下我创建的Mvc.CascadeDropDown helper 。它适用于从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

希望对你们中的一些人有帮助

原作者:
115 2

不,在 MVC 5中没有新的帮助器或者方法来帮助。

Ajax HTML助手在更新中被大量忽略。有一些事情可能有助于与这里相关的内容:

  • 有一个新的@Html.EnumDropDownListFor() helper 可以从 enum 中填充下拉列表。
  • 已经改进了属性路由功能,现在与 Web API 一起工作,因此将url映射到API调用更加容易。
  • 你现在可以在 EditorFor Html helper 中传递 Html attibutes@Html.EditorFor(m => m.FieldName, new { htmlAttributes = new { @class ="form-control" } })

上周我实现了 cascading dropdowns,使用了你所提到的和 true的JSON调用。我喜欢使用这个jQuery插件插件和新的属性路由一起使用 Web API 。

原作者:
...