gpt4 book ai didi

asp.net-mvc - 来自对象 MVC 的 DropDownList

转载 作者:行者123 更新时间:2023-12-04 19:09:29 27 4
gpt4 key购买 nike

好的,我想做一个 DropDownList从我的对象列表
这是我的获取对象方法

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();

如果我只取类别的名称并将其解析为字符串,则没有问题,但我也需要 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 field 。如果这些字段名称不正确,您需要更改传递给 SelectList 的字符串。相应的构造函数。

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

关于asp.net-mvc - 来自对象 MVC 的 DropDownList,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16636448/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com