@ Html.DropDownListFor класс с проблемой коллекции - PullRequest
0 голосов
/ 08 сентября 2011

У меня есть класс viewModel SomeDataViewMode, в этом классе есть объект List Schools, заполненный объектами School. Школьный объект имеет свойства SchoolID и Name. На мой взгляд (Razor) я добавил:

@Html.DropDownListFor(c => c.ScoolId, new SelectList(Model.Schools), "Select some school")

Но все, что я получил, это выпадающий список с:

MyProject.Domain.Entities.School

Как получить значения?

Ответы [ 2 ]

1 голос
/ 08 сентября 2011

Вы должны либо добавить метод ToString() в класс School, либо использовать LINQ для создания SelectListItem s с Text s и Value s:

new SelectList(Model.Schools.Select(s => new SelectListItem { Text = s.Name, Value = s.SchoolId }))

РЕДАКТИРОВАТЬ : Ваш код излишне сложен.
Вы можете написать

@Html.DropDownListFor(x => x.Schools, new SelectList(list, "SchoolId", "Name"))
0 голосов
/ 08 сентября 2011

Вам необходимо указать, какое свойство объекта School следует использовать для Value, а какое для Text.Например, если модель School имеет свойства Name и Id:

@Html.DropDownListFor(
    c => c.ScoolId, 
    new SelectList(Model.Schools, "Id", "Name"), 
    "Select some school"
)
...