2016-09-21 133 views
-1

我在MVC 4應用程序中顯示Dropdownlist時遇到問題。 它看起來很直接,但仍然有一些東西仍然沒有被抓住。MVC 4的故障DropDownListFor

視圖模型

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>對象。 和終於在視圖上使用下面的代碼。

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

我在做什麼錯?我在屏幕上獲得了以下結果。

enter image description here

而是賣主的名字的。

請建議我的代碼有什麼問題。

+2

它表明你的'getAllVendorTypes()'方法是錯誤的,而不是返回正確的數據。 –

+1

你能否在「return View(oVendor);」上設置一個斷點並在執行該行之前檢查vendorTypes,並確保您的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 
})