我是MVC 5的新手,我的目标是过滤要显示在下拉列表中的enum中的列表

public enum DayofWeekType
{
      Monday=1,
      Tuesday= 2,
      Wednesday=3,
      Thursday=4,
      Friday= 5,
      Saturday=6,
      Sunday= 7
}


我只想在登录的用户不是管理员时显示周五,周六和周日的下拉列表,找不到在enum中过滤Model字段的解决方案,尝试在模型中添加条件,但始终会总结出错误。尝试搜索LINQjQuery解决方案。

最佳答案

你可以这样

   var enumlist =  Enum.GetValues(typeof(DayofWeekType)).Cast<DayofWeekType>().Select(v => new SelectListItem
    {
        Text = v.ToString(),
        Value = ((int)v).ToString()
    });

    if (IsUser) //your condition here
    {
      enumlist=  enumlist.Skip(4);

    }

    ViewBag.enumlist = enumlist;


在你看来

@Html.DropDownListFor(x=>x.Id,(IEnumerable<SelectListItem>) ViewBag.enumlist)


.Skip将跳过第一个4值,并以5th值为Friday开头

关于c# - 如何过滤枚举并在下拉列表中使用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/43447985/

10-09 21:58