2011-02-13 19 views
7

Estoy tratando de mostrar un menú desplegable en mi página de vista que tiene un valor de texto personalizado.Establecer campo de texto personalizado en la Lista de selección

Estoy tratando de mostrar una lista a Contactos. Un contacto contiene un ContactID, FirstName y LastName.

<%= Html.DropDownListFor(m => m.ContactId, new SelectList(Model.Contacts, "ContactID", "LastName"), "- Select a Contact -") %> 

En este momento estoy simplemente mostrar el último nombre, pero me gustaría ver el primer nombre y apellido en la lista desplegable.

Respuesta

6

Cambiar la clase de contactos, añadir una propiedad:

public class Contact { 
    public string FirstNameLastName { get { return FirstName + " " + LastName; } } 
} 

luego usarlo:

<%= Html.DropDownListFor(m => m.ContactId, new SelectList(Model.Contacts, "ContactID", "FirstNameLastName"), "- Select a Contact -") %> 
+0

método simple y rápido ... funciona perfecto :) –

18

He estado buscando por el mismo y su pregunta fue el primer resultado en Google. Sé que pidió hace un año, sino para todas las otras personas que se encuentran en:

Html.DropDownListFor(m => m.ContactId, 
     new SelectList(
      Model.Contacts.Select(
      c => new 
      { 
       Id = c.ContactId, 
       FullName = c.FirstName + " " + c.LastName 
      }), 
      "Id", 
      "FullName")) 

En mi caso no puedo cambiar la clase de "Contacto".

+1

+1 Así es como he hecho esto en el pasado y funciona muy bien. –

+0

@Steven, marque como resuelto! – regisbsb

Cuestiones relacionadas