2015-02-01 2 views
3

Я пытаюсь заполнить форму для того, чтобы пользователи могли зарегистрироваться на веб-сайте asp.net MVC, я изо всех сил стараюсь, чтобы выпадающие списки отображали текст правильно. Модель имеет следующие:SelectListItem Текст не отображается

public SelectList CountiesList; 

В конструкторе сущности мой контекст базы данных:

CountiesList = new SelectList(
       from c in entities.Counties 
       select new SelectListItem 
       { 
        Value = c.CountyID.ToString(), 
        Text = c.County //the county name, nvarchar/string 
       }); 

И в моем cshtml:

<div class="align-center"> 
    <label>County</label> 
    @Html.DropDownListFor(x => x.County, Model.DropDowns.CountiesList) 
</div> 

Это генерирует выпадающий список с правом количество элементов из таблицы поиска, но отображаемый текст - это «System.Web.Mvc.SelectListItem», а не название округа.

Любая помощь очень ценится!

+1

Ваш DropDownListFor указывает на x.County, а при заполнении списка вы возвращаете Value & Text в качестве свойства. Разве вы не должны указывать на x.Text? – Icepickle

+0

Я удаляю свой ответ, я нахожу его с некоторыми исследованиями, но похоже, что это неверно. Я отдаю вам удачу. – mybirthname

ответ

0

попробовать это

public IEnumerable<SelectListItem> CountiesList; 

CountiesList = from c in entities.Counties 
       select new SelectListItem 
       { 
        Value = c.CountyID.ToString(), 
        Text = c.County //the county name, nvarchar/string 
       }; 

, потому что вы shoudn't заполнить SelectList с IEnumerable<SelectListItem>. Используйте либо SelectList, либо a IEnumerable<SelectListItem>, , но не оба.

+0

Это все еще не показывает имя должным образом в выпадающих меню, но спасибо за указатель, я не знал, что я смешивал их, когда не должен. – thisextendsthat

+0

Вы уверены, что свойство 'Country' содержит имя, и это не объект? – RezaRahmati

+0

Да, это просто строка в модели просмотра, которую я хочу установить с текстом из текста SelectListItem. – thisextendsthat

0

Я сомневаюсь, что ваша проблема идет глубже, чем это, потому что не является нормальным, чтобы иметь SelectList в качестве модели. И я думаю, что есть вероятность, что сохранение списка Dropdowns в вашей модели указывает на ошибку концепции.

Ваша модель должна, вероятно, будет ваш Entity (список графств?), А затем вы можете связать DropDownList для графств, пропускания второго аргумента Html.DropDownListFor помощника в SelectList создано точно так же, как вы это делаете при инициализации вашего CountiesList прямо сейчас.

+0

Моя модель просмотра («Кандидат») имеет те же поля, что и базовая модель БД, которую я не буду создавать и сохранять, но я включил вложенный класс для внешних элементов ключа как SelectItemLists, которые заполнены в конструкторе модели, когда он вызывается в контроллере и передается в представление. Я уверен, что это не типично, но это мой первый удар в MVC, поэтому я все еще чувствую это - ваш ответ подсказывает, что это способ сделать это, не включив их в View Model, поэтому я буду исследовать это сейчас. Спасибо за вашу помощь. – thisextendsthat

Смежные вопросы