加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net-mvc – 来自Objects MVC的DropDownList

发布时间:2020-12-16 07:00:41 所属栏目:asp.Net 来源:网络整理
导读:好的,我想从我的对象列表中创建一个DropDownList 这是我的获取对象方法 public ListCategory GetCategoriesList(){ BaseShopEntities context = new BaseShopEntities(); ListCategory uniqCategories = (from c in context.Category select c).Distinct().T
好的,我想从我的对象列表中创建一个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();

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

我想得到这样的数据,但不知道如何

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

解决方法

首先,GetCategoriesList已经返回一个List,因此在将其添加到ViewBag时不需要ToList:

ViewBag.Categories = proxy.GetCategoriesList();

其次,为了创建具有独立名称和值的DropDownList,您需要以下SelectList构造函数的重载:

SelectList(IEnumerable,String,String)

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

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

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

旁注:您应该为与数据库实体类分开的类别创建单独的视图模型,并创建一个列表.您的观点不应直接访问您的数据实体.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读