2016-09-21 46 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 
})