2014-04-09 23 views
9

Tôi tự hỏi liệu có một số trình trợ giúp hoặc phương thức mới được giới thiệu trong ASP.NET MVC 5 để triển khai danh sách thả xuống xếp tầng hay không. Tôi biết một cách để thực hiện hành vi tầng DropDownList trong MVC 3 và MVC 4 đó là bằng cách sử dụng một cuộc gọi JSONDanh sách thả xuống xếp tầng trong ASP.NET MVC 5

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

Vì vậy, bất cứ ai biết một cách tốt hơn để thực hiện dropdownlists tầng trong MVC 5?

Trả lời

2

Không, không có người trợ giúp hoặc phương pháp mới trong MVC 5 để trợ giúp.

Trình trợ giúp HTML Ajax đã bị bỏ qua phần lớn trong bản cập nhật. Có một số điều có thể trợ giúp với nội dung liên quan đến việc này:

  1. Có một trình trợ giúp HTML @ Html.EnumDropDownListFor() HTML mới điền một trình đơn thả xuống từ Enum.
  2. Attribute routing functionality trong số này đã được cải thiện và giờ đây hoạt động với API Web để dễ dàng hơn trong việc ánh xạ URL đến các cuộc gọi API.
  3. Bây giờ bạn có thể vượt qua trong attibutes html trong helper EditorFor Html @Html.EditorFor(m => m.FieldName, new { htmlAttributes = new { @class = "form-control" } })

tôi thực hiện tầng Dropdowns tuần trước và sử dụng thử và đúng JSON gọi cho bạn đề cập. Tôi thích sử dụng this jQuery plugin kết hợp với Web API v2 với định tuyến thuộc tính mới.

11

Tôi biết rằng đây là một câu hỏi cũ nhưng ai đó vẫn có thể tìm thấy nó hữu ích

tôi đang tìm kiếm điều tương tự nhưng din't thấy bất cứ điều gì ổn định và hữu ích vì vậy tôi đã kết thúc thực hiện nó bằng bản thân mình:

Hãy xem qua số Mvc.CascadeDropDown trình trợ giúp mà tôi đã tạo. Nó hoạt động với tất cả các phiên bản MVC bắt đầu từ MVC3 và không yêu cầu bất kỳ thư viện phía máy khách nào (Nó sử dụng JavaScript vani thuần túy).

Việc sử dụng rất đơn giản:

@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 

Hy vọng rằng nó sẽ rất hữu ích cho một số bạn

+0

tôi đã cố gắng nugget này và nhận lỗi sử dụng ViewBag mặc định, propertyIds. Làm thế nào được sử dụng này - nói trong một hình thức tạo ra tất cả các giá trị cho dropdowns cascadiing (chỉ cần 2 cấp độ) là từ cơ sở dữ liệu? – Diin

+0

@Diin, Vui lòng mở một sự cố trong https://github.com/alexanderar/Mvc.CascadeDropDown/issues bao gồm một số chi tiết về trường hợp sử dụng của bạn và về các lỗi mà bạn gặp phải. Tôi sẽ cố gắng giải quyết nó. Tôi đã sử dụng helper này trong sản xuất cho nhiều dự án, và do đó mốt mốt không gặp bất kỳ vấn đề nào với nó. Bằng cách này bạn có thể thấy việc sử dụng trong https://github.com/alexanderar/Mvc.CascadeDropDown/tree/master/Mvc.CascadeDropDown.Test project –

+1

Đó là một điều tuyệt vời bạn đã làm mẫu hoạt động rất tốt nhưng tôi nghĩ vấn đề của tôi là làm thế nào để làm cho nó kéo dữ liệu từ cơ sở dữ liệu mà không có gì để làm với các chức năng. Có cách nào tôi có thể cho bạn thấy mã của tôi không - Mã của bạn hoạt động rất tốt nhưng tôi đang xem nó hoạt động từ maf mvc mặc định – Diin

Các vấn đề liên quan