2012-10-04 67 views
10

Vì vậy, tôi có một cái nhìn đánh máy với một bộ sưu tập như vậy:MVC NET Tạo danh sách thả xuống từ Model Collection theo quan điểm mạnh mẽ gõ

<%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage<IList<DTO.OrganizationDTO>>" %> 

Các OrganizationDTO trông như thế này:

public OrganizationDTO 
{ 
    int orgID { get; set; } 
    string orgName { get; set; } 
} 

tôi chỉ đơn giản là muốn tạo ra một danh sách thả xuống từ bộ sưu tập của OrganizationDTO bằng cách sử dụng một trình trợ giúp HTML nhưng đối với cuộc sống của tôi tôi không thể tìm ra nó! Tôi đang đi về điều này một cách sai lầm?

Tôi có nên sử dụng vòng lặp foreach để tạo hộp chọn không?

+0

Vâng, tôi đang cố gắng sử dụng <% = Html.DropDownListFor()%> nhưng tôi không chắc chắn đó là điều phải làm. –

+0

Nó hoàn toàn là điều đúng đắn để làm. Tôi hỏi lại, những gì cụ thể đã cố gắng? Chúng tôi không thể giúp bạn nếu bạn không hiển thị cho chúng tôi mã bạn đang sử dụng. –

Trả lời

13

tôi đã làm một ví dụ nhỏ, với một mô hình như của bạn:

public class OrganizationDTO 
{ 
    public int orgID { get; set; } 
    public string orgName { get; set; } 
} 

và một bộ điều khiển như:

public class Default1Controller : Controller 
{ 
    // 
    // GET: /Default1/ 

    public ActionResult Index() 
    { 
     IList<OrganizationDTO> list = new List<OrganizationDTO>(); 
     for (int i = 0; i < 10; i++) 
     { 
      list.Add(new OrganizationDTO { orgID = i, orgName = "Org " + i }); 
     } 

     return View(list); 
    } 

} 

và trong giao diện:

<%= Html.DropDownListFor(m => m.First().orgID, new SelectList(Model.AsEnumerable(), "orgId","orgName")) %> 
+1

Ahh. Điều này trông giống như những gì tôi cần. Phần đầu tiên đã ném tôi ra bởi vì m là một bộ sưu tập và tôi đã bị mất nguyên nhân m => m.orgID không tồn tại. –

+1

Vì vậy, theo câu trả lời [Ở đây] (http://stackoverflow.com/questions/8182280/difference-between-dropdownlist-or-dropdownlistfor-html-helper) các DropDownListFor có vẻ là lựa chọn tốt hơn kể từ khi gõ mạnh mẽ của nó vì vậy tôi phải trả tiền cho câu trả lời này. Cảm ơn bạn! –

+1

@ColinPear Hãy cẩn thận với 'm.First(). OrgID', nó sẽ ném lỗi nếu danh sách trống. – webdeveloper

5

Hãy thử điều này:

<%= Html.DropDownList("SomeName", new SelectList(Model, "orgID", "orgName"), "Please select Organization") %> 
+0

Điều này cũng hoạt động! –

+0

Cảm ơn, rất đơn giản. –

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