Câu hỏi Làm thế nào để Populate ListBoxFor trong Mvc3?


Tôi có một danh sách các loại thủ tục lưu trữ có một ID và một tên như dữ liệu trong đó. tôi có tài sản của loại int trong mô hình và một danh sách các thủ tục lưu trữ tương tự. bây giờ tôi muốn ràng buộc thông tin này vào ListBoxFor

theo tôi đã viết

@Html.ListBoxFor(x => x.HobbyId, new MultiSelectList(Model.listHobby, "pkHobbyId", "Hobby"))

nhưng tôi đang gặp lỗi

Tham số 'biểu thức' phải đánh giá thành một IEnumerable khi cho phép nhiều lựa chọn.

Xin vui lòng giúp đỡ làm thế nào để ràng buộc.


7
2018-04-05 12:46


gốc


Xin vui lòng gửi cũng các Mô Hình. Loại listHobby là gì ?. Cách bạn đặt giá trị cho nó ?. - Iridio


Các câu trả lời:


thử đi

@Html.ListBoxFor(x => x.HobbyId, Model.listHobby.Select(f => new SelectListItem { Text = f.Hobby, Value = f.pkHobbyId.ToString() }), new { Multiple = "multiple" }) 

listHobby là danh sách iEnumerable trên mẫu của tôi


xin lỗi nếu tôi đánh lừa bạn, vội vã trả lời nhưng bạn không thể nhận được kết quả của hộp danh sách nhiều lựa chọn thành một biến hướng dẫn hoặc biến int (bất kỳ kiểu nào là HoobyId của bạn), bạn nên có một mảng để lấy kết quả như

public string[] SelectedHobbyIds { get; set; }

do đó, phải có điều gì đó sai với Mô hình Xem của bạn để tốt hơn là bạn nên đăng mô hình xem của mình để được kiểm tra


7
2018-04-05 13:00



có tôi nhận được nó i m trả lại giá trị trong id sở thích đó là của int trong khi tôi phải trở lại trong một bộ sưu tập. - Rachit


@ Chhatrapati Sharma,

Trong bộ điều khiển của bạn, hãy thử điều này,

ViewData['anyName'] = new SelectList {
 Text = ,  // text from ur function
 Value = , // Value from function
 Selected = // if required
}

và trong chế độ xem, ràng buộc chế độ xem như,

 <@Html.ListBox("docImages", ((IEnumerable<SelectListItem>)ViewData["anyName"]))

Để thử nghiệm, hãy thử một mục danh sách lựa chọn mẫu như sau,

ViewData['anyName'] = new List<SelectListItem>{ 
                new SelectListItem {Text = "First", Value = "0"}, 
                new SelectListItem {Text = "Second"), Value = "1"}, 
                new SelectListItem {Text = "Third", Value = "2"} 
                    };

Nếu mẫu này hoạt động, hãy kiểm tra hàm "_supp.listDocImages ()" của bạn và đảm bảo rằng nó trả về IList


5
2018-01-14 10:02





@Html.ListBoxFor(x => x.HobbyId, Model.listHobby.Select(f => new SelectListItem { Text = f.Hobby, Value = f.pkHobbyId.ToString() }), new { Multiple = "multiple" }) 

Hàm HobbyId trong biểu thức phải được đếm bởi vì bạn đặt đa lựa chọn


3
2018-04-05 13:51



nó không hoạt động đối với tôi // controller publicResult AddEditSupplier (int id) {clsSupplier _supp = new clsSupplier (); _supp.lstDocImgs = _supp.listDocImages (); // nó hoạt động tốt _supp.lstDocFiles = _supp.listDocFiles (); // nó hoạt động tốt trở lại View (_supp); } // Xem nhưng trong chế độ xem cả hai không hoạt động @ Html.ListBoxFor (x => x.DocumentId, new selectList (Model.lstDocImgs, "documentid", "title")) @ Html.ListBoxFor (x => x.DocumentId , Model.lstDocImgs.Select (f => new SelectListItem {Text = f.Title, Value = f.documentid.ToString ()}), mới {Multiple = "multiple"}) - Chhatrapati Sharma