2010-06-09 27 views
14

Tôi đang cố gắng điền một DropDownList với các giá trị được lấy từ một thuộc tính và kết quả cuối cùng của tôi ngay bây giờ là danh sách không có gì ngoài "System.Web.Mvc.SelectListItem" s. Tôi chắc chắn có một số bước nhỏ tôi bỏ qua ở đây, nhưng đối với cuộc sống của tôi tôi không thể tìm ra nó là gì.Tại sao điều này lại hiển thị dưới dạng danh sách "System.Web.Mvc.SelectListItem"?

Các GET tài sản tạo ra danh sách:

public IEnumerable<SelectListItem> AllFoo { 
    get { 
     var foo = from g in Bar 
        orderby g.name 
        select new SelectListItem { 
        Value = g.fooid.ToString(), 
        Text = g.name 
        }; 

     return foo.AsEnumerable(); 
    } 
} 

Mã điều khiển:

public ActionResult Edit(string id) { 
    // n/a code 
    ViewData["fooList"] = new SelectList(g.AllFoo, g.fooid); 

    return View(g); 
} 

Mã xem:

<%= Html.DropDownListFor(model => model.fooid, ViewData["fooList"] as SelectList) %> 

Trả lời

-5

EDIT: Câu hỏi này rất giống với một trong những đã được hỏi:

ASP.NET MVC 2 - Html.DropDownListFor confusion with ViewModel


Nếu không, bạn có thể tìm thấy bài viết này hữu ích:

http://www.nickriggs.com/posts/rendering-and-binding-drop-down-lists-using-asp-net-mvc-2-editorfor/

Nó sử dụng EditorFor, nhưng tương tự có thể được thực hiện cho DisplayFor.

+0

Tôi sẽ xem xét chúng, cảm ơn. –

+4

điều này không phải là rất hữu ích. câu hỏi này yêu cầu lý do cụ thể tại sao các thẻ

+2

Vâng, không ai trong số những câu hỏi hoặc bài viết khác "rất giống" với câu hỏi này. Không thực tế. –

32

Sự cố ở đây là bạn không được điền SelectList với số IEnumerable<SelectListItem>. Sử dụng SelectList hoặc IEnumerable<SelectListItem>, nhưng không được sử dụng cả hai. Để biết thêm chi tiết, hãy xem câu hỏi này: Asp.Net MVC 2 Dropdown Displaying System.Web.MVC.SelectListItem

+1

Ngắn và cho điểm. Câu trả lời tốt. – Casey

+0

Câu trả lời ngắn và tốt. Cảm ơn bạn :) –

+0

Điều này mang lại cho tôi mỗi lần duy nhất! Câu trả lời hoàn hảo, cảm ơn. – VictorySaber

2

Tôi đã gặp sự cố tương tự. Bạn nên làm trong giao diện như

@ Html.DropDownListFor (mô hình => model.fooid, SelectList mới (ViewData [ "fooList"], "Văn bản", "Giá trị", Model.DefaultValue))

Điều này dựa trên C# với chế độ xem dao cạo

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