2016-09-21 2 views
-1

У меня возникли проблемы с отображением Dropdownlist в приложении MVC 4. Это выглядит просто, однако что-то все еще отсутствует, что не получает.Проблема с MVC 4 DropDownListFor

ViewModel

public class vendorModel 
{ 
    public int vendorID { get; set; } 
    public int vendorTypeID { get; set; } 
    public string vendorName { get; set; } 
    public IEnumerable<vendorTypeModel> vendorTypes { get; set; } 
} 

public class vendorTypeModel 
{ 
    public int vendorTypeID { get; set; } 
    public string vendorTypeName { get; set; } 
} 

Контроллер

[HttpGet] 
    public ActionResult Vendor() { 
     vendorModel oVendor = new vendorModel(); 
     oVendor.vendorTypes = blVendor.getAllVendorTypes(); 
     return View(oVendor); 
    } 

getAllVendorTypes Метод Это где я выборку записей из базы данных и создания и возвращения List<vendorTypeModel> объекта. и, наконец, View, используя следующий код.

@Html.DropDownListFor(m => m.vendorTypeID, new SelectList(Model.vendorTypes,"vendorTypeID","vendorTypeName")) 

Что я делаю неправильно? Я получаю следующие результаты на экране.

enter image description here

Вместо имен поставщиков.

Пожалуйста, сообщите, что случилось с моим кодом.

+2

Он предлагает свой 'getAllVendorTypes()' метод является неправильным и не возвращают правильные данные. –

+1

Можете ли вы установить точку останова на строке «Вид возврата (oVendor)»; и проверьте, будут ли типы vendorTypes до того, как строка будет выполнена, и убедитесь, что у вас есть правильные результаты в качестве типов vendor в объекте oVendor. Позвольте мне знать, что вы наблюдаете. Ура! –

ответ

1

Я подозреваю, что oVendor.vendorTypes = blVendor.getAllVendorTypes(); может вернуть неправильный список обратно. Установите контрольную точку и проверьте, пожалуйста, oVendor.vendorTypes.

+0

Да, в методе getAllVendorTypes произошла ошибка. –

0

Согласно https://stackoverflow.com/a/15195354/6741868, вы можете попробовать альтернативный синтаксис, такие как:

@Html.DropDownListFor(m => m.vendorTypeID, Model.vendorTypes.Select(vendor => new SelectListItem() 
{ 
    Text = vendor.vendorTypeName, 
    Value = vendor.vendorTypeID 
})