下拉列表从对象MVC



好的,我想从我的对象列表中创建一个DropDownList这是我的get对象方法

public List<Category> GetCategoriesList()
{
    BaseShopEntities context = new BaseShopEntities();
    List<Category> uniqCategories = (from c in context.Category
                                             select c).Distinct().ToList<Category>();
    return uniqCategories;
}

我试着像这样把它放入ViewBag:

ViewBag.Categories = proxy.GetCategoriesList().ToList();

如果我只取Categorys的名称并将其解析为字符串,则没有问题,但我也需要ID

我想获取这样的数据,但不知道如何获取

@Html.DropDownList("CategoryID", new SelectList(ViewBag.Categories.Name));

首先,GetCategoriesList已经返回一个列表,所以你不需要ToList当你添加到ViewBag:

ViewBag.Categories = proxy.GetCategoriesList();
其次,为了创建一个具有独立名称和值的DropDownList,您需要对SelectList构造函数进行以下重载:
SelectList(IEnumerable, String, String)

在这里,您指定用于填充SelectList的列表以及两个字符串,其中第一个是列表中元素的字段的名称,第二个是文本字段的名称。然后使用反射检索这些字段的值。在您的例子中,它可能看起来像这样:

@Html.DropDownList("CategoryID",
    new SelectList(ViewBag.Categories, "Id", "Name"));

这里,我假设每个类别都有一个Id字段和一个Name字段。如果这些字段名不正确,则需要相应地更改传递给SelectList构造函数的字符串。

附带说明:您应该为与数据库实体类分开的类别创建一个单独的视图模型,并创建这些类别的列表。你的视图不应该直接访问你的数据实体

相关内容

  • 没有找到相关文章

最新更新