2012-10-04 13 views
10

Así que tengo una vista con tipo con una colección de este modo:MVC .NET Crear Lista desplegable de colección modelo a la vista de tipo firme

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

El OrganizationDTO se ve así:

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

I simplemente quiero crear una lista desplegable de la colección de OrganizationDTO's usando un helper de HTML, pero por mi vida no puedo entenderlo. ¿Voy por esto de la manera incorrecta?

¿Debo utilizar un bucle foreach para crear el cuadro de selección?

+0

Bueno, estoy tratando de usar <% = Html.DropDownListFor()%> pero no estoy seguro de que sea lo correcto. –

+0

Es absolutamente lo correcto. Pregunto de nuevo, ¿qué ha intentado específicamente? No podemos ayudarlo si no nos muestra el código que está usando. –

Respuesta

13

hice un pequeño ejemplo, con un modelo como la suya:

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

y un controlador como:

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); 
    } 

} 

y en la vista:

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

Ahh. Esto se ve como lo que necesito. La primera parte me estaba tirando porque m es una colección y me estaba perdiendo porque m => m.orgID no existía. –

+1

De acuerdo con la respuesta [Aquí] (http://stackoverflow.com/questions/8182280/difference-between-dropdownlist-or-dropdownlistfor-html-helper) DropDownListFor parece ser la mejor opción ya que está fuertemente tipado, así que tengo que dar crédito a esta respuesta. ¡Gracias! –

+1

@ColinPear Tenga cuidado con 'm.First(). OrgID', arrojará un error si la lista está vacía. – webdeveloper

5

Prueba esto:

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

¡Esto también funciona! –

+0

Gracias, forma muy simple. –

Cuestiones relacionadas