asp.net-mvc - Asp.Net MVC 2 下拉显示 System.Web.MVC.SelectListItem

标签 asp.net-mvc

我有一个包含 EquipmentID 列表的表和另一个包含维护记录的表。

当用户编辑维护记录时,我希望有一个包含表中所有设备 ID 的下拉列表。

下拉列表会填充,并填充正确数量的条目,但是它们都说 System.Web.MVC.SelectListItem而不是 ID 的值。

这是生成列表的代码:

public ActionResult Edit(int id)
{
    MaintPerformed maintPerformed = maintPerformedRepository.GetMaintPerformed(id);

    IList<EquipmentID> IDs = equipmentIDRepository.GetEquipmentIDAsList();

    IEnumerable<SelectListItem> selectEquipList =  
        from c in IDs
        select new SelectListItem
        {
            //Selected = (c.EquipID == maintPerformed.EquipID),
            Text = c.EquipID,
            Value = c.Sort.ToString()
        };

    ViewData["EquipIDs"] = new SelectList(selectEquipList, maintPerformed.ID);
    return View(maintPerformed);
}

这是下拉列表的 .aspx 页面中的条目:
%: Html.DropDownList("EquipIDs") %>

这是我从表中生成列表的方式:
public List<EquipmentID> GetEquipmentIDAsList()
    {
        return db.EquipmentIDs.ToList();
    }

除了分配要在下拉框中显示的文本外,似乎一切正常。

我错过了什么或没有正确思考什么?

最佳答案

SelectListSelectListItem实际上是相互排斥的。您应该使用一个 另一个。或者通过 SelectList 的构造函数您的原始数据 ( IDs ) 或不使用 SelectList完全,只需制作 ViewData["EquipIDs"]您可枚举的 SelectListItem .如果您采用后一种方法,则必须调整代码,以便在 SelectListItem 的构造函数中设置所选项目(正如您所做的那样,但已注释掉)。

任何一个:

ViewData["EquipIDs"] = new SelectList(IDs, maintPerformed.ID, "EquipID", "Sort");

或者:
IEnumerable<SelectListItem> selectEquipList =
    from c in IDs
    select new SelectListItem
    {
        Selected = c.EquipID == maintPerformed.EquipID,
        Text = c.EquipID,
        Value = c.Sort.ToString()
    };

ViewData["EquipIDs"] = selectEquipList;

关于asp.net-mvc - Asp.Net MVC 2 下拉显示 System.Web.MVC.SelectListItem,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3832830/

相关文章:

c# - EF 6 关系 : One or more validation errors were detected during model generation

c# - 在我自己的页面中显示 ELMAH 错误详细信息?

asp.net - 如何在其他 Controller 中使用授权用户名

c# - 尽管存在错误 View ,但找不到错误页面 ASP.NET MVC

asp.net-mvc - 无法将带 [] 的索引应用于类型 'System.Web.Mvc.IValueProvider' 的表达式

css - 如何为数字字段应用条件 CSS?

c# - 网络 MVC : Is there support for controller level filter attributes?

c# - MVC EditorFor model binding for multiple edit forms on a page

javascript - 如何使用 asp.net mvc 制作大 Angular 单页应用程序?

javascript - MVC + RegisterClientScriptInclude/RegisterClientScriptBlock