有问题的MVC 4 DropDownListFor

时间:2016-09-21 04:34:00

标签: c# asp.net-mvc asp.net-mvc-4

我在MVC 4应用程序中显示Dropdownlist时遇到问题。 它看起来很简单,但是仍然缺少一些没有得到的东西。

视图模型

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 个答案:

答案 0 :(得分:1)

我怀疑oVendor.vendorTypes = blVendor.getAllVendorTypes();可能会返回错误的列表。设置断点并检查oVendor.vendorTypes

答案 1 :(得分:0)

根据https://stackoverflow.com/a/15195354/6741868,您可以尝试其他语法,例如:

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