Как показать две строки в ASP.NetDropDownList SelectList dataTextField? - PullRequest
0 голосов
/ 28 октября 2010

Это мой DropDownList в ASP.Net:

<%: Html.DropDownListFor(x => x.CompanyUserFilterId, new SelectList(Model.CompanyUsers, "Id", "FirstName", Model.CompanyUserFilterId)) %>

Я хочу перечислить всех CompanyUsers в DropDownList и показать их свойства FirstName и LastName.CompanyUsers - это свойство IEnumerable.Приведенный выше код работает и показывает только свойство FirstName.Можно ли показать оба?

Ответы [ 2 ]

1 голос
/ 28 октября 2010

Вместо того чтобы передавать полные данные о клиентах в качестве модели, вам придется вместо этого предоставить проекцию ваших данных, содержащую объединенное поле.

Вы не предоставили реализацию своего контроллера, но, вероятно, хотитесделайте что-то вроде этого:

var data = from c in DataContext select new CustomerData() { Id = c.Id, Name = c.FirstName + " " + c.LastName };

return View(data);

.. где CustomerData - это простой POCO со свойствами Id и Name.Затем измените свое представление, чтобы использовать IEnumerable и код выпадающего списка, чтобы использовать свойство «Имя» из вашей проектируемой модели вместо свойства FirstName, которое у вас было изначально.удовлетворить ваш собственный конкретный сценарий.

0 голосов
/ 28 октября 2010

Я добавлю, что выпадающие списки MvcContrib настолько лучше, чем список по умолчанию, я бы посоветовал использовать эту библиотеку, если это вообще возможно.

...