2012-04-05 30 views
7

Tôi có một danh sách các thủ tục lưu trữ loại có ID và một tên như dữ liệu trong đó. tôi có thuộc tính kiểu int trong mô hình và danh sách các thủ tục đượ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 ListBoxForLàm cách nào để điền vào ListBoxFor trong Mvc3?

theo quan điểm của tôi đã viết này

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

nhưng tôi đang nhận được một lỗi

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

Vui lòng trợ giúp cách liên kết.

+0

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

Trả lời

7

thử mà

@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 ListBox multiselect vào một guid hay int biến (bất kỳ loại là HoobyId của bạn là) bạn nên có một mảng để lấy kết quả như

public string[] SelectedHobbyIds { get; set; } 

vì vậy phải có một cái gì đó sai với Xem Models của bạn để nó tốt hơn mà u sẽ gửi mô hình điểm của bạn để được kiểm tra

+0

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

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

HobbyId trong biểu phải IEnumerable vì bạn thiết lập nhiều chọn

+0

nó không hoạt động cho tôi // bộ điều khiển hành động công cộngResult 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 return View (_supp); } // Xem nhưng theo quan điểm của cả hai đều không làm việc @ Html.ListBoxFor (x => x.DocumentId, mới 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"}) –

5

@ Chhatrapati Sharma,

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

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

và theo quan điểm, ràng buộc ViewData như,

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

Để thử nghiệm, hãy thử một mục mẫu SelectList 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 tác phẩm mẫu này, sau đó kiểm tra chức năng của bạn "_supp.listDocImages()" và chắc chắn rằng nó trở IList

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