asp.net-mvc-3 - 从下拉列表中删除项目

标签 asp.net-mvc-3 entity-framework-4 asp.net-mvc-3-areas

我创建了一个下拉列表,让用户通过选择角色来选择他们想要创建的帐户。我面临的问题是它在下拉列表中显示管理员角色。您将如何从列表中隐藏或删除管理员角色?

下拉列表是用viewbag生成的:

   public ActionResult Register()
        {
            List<SelectListItem> list = new List<SelectListItem>();
            SelectListItem item;
            foreach (String role in Roles.GetAllRoles())
            {
                item = new SelectListItem { Text = role, Value = role };
                list.Add(item);
            }

            ViewBag.roleList = (IEnumerable<SelectListItem>)list;
            return View();
        } 

任何建议 - 欢迎

最佳答案

我认为您应该从创建选择列表的数组中删除管理员角色,而不是从选择列表中删除管理员角色。

所以而不是

foreach (String role in Roles.GetAllRoles())


foreach (String role in Roles.GetAllRoles().Where(role => role != "admin"))

如果您愿意,您可以进一步将这个有限的角色调用抽象为它自己的方法。

不是您问题的一部分,但您可以用简单的 linq 语句替换所有代码。

ViewBag.roleList = Roles.GetAllRoles().Where(role => role != "admin").
    Select(role => new SelectListItem { Text = role, Value = role}).ToList();

也不是你的问题的一部分,但我强烈建议将 SelectList 作为你的 View 模型的一部分。

关于asp.net-mvc-3 - 从下拉列表中删除项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10273453/

相关文章:

asp.net-mvc-3 - mvc3 - 在不同区域使用局部 View

asp.net-mvc - 为多语言 ASP.NET MVC Web 应用程序设置 CurrentCulture 的最佳位置

entity-framework - Entity Framework 发布揭秘

.net - 验证对象是否已经在 Entity Framework 上下文中

c# - 在 Entity Framework 查询中使用带有标志的枚举

asp.net-mvc-3 - 使用t4脚手架在mvc4中获取模型(TableName)的元数据

c# - Entity Framework 4.1 中带有 TransactionScope 的多个 dbcontext 的 SaveChanges()

c# - 无法使用自签名客户端证书对对 ASP.NET MVC3 服务的调用进行身份验证

asp.net-mvc-3 - mvc3提交模型为空

c# - 如何从json解析日期时间?