enumdropdownlist用于有条件隐藏项

本文关键字:隐藏 有条件 用于 enumdropdownlist | 更新日期: 2023-09-27 18:03:11

我想根据用户是否登录有条件地隐藏EnumDropDownListFor中的元素。

Enum

public enum SortType
{
    [Display(ResourceType = typeof(NavigationItems), Name = "BestMatch")]
    Best_Match = 0,
    [Display(ResourceType = typeof(NavigationItems), Name = "Alphabetical")]
    Alphabetical,
    [Display(ResourceType = typeof(NavigationItems), Name = "PriceAsc")]
    PriceAsc,
    [Display(ResourceType = typeof(NavigationItems), Name = "PriceDesc")]
    PriceDesc
}

我想要隐藏的项目是PriceAsc &PriceDesc
我已经尝试查看AutoGenerateFilterAutoGenerateField属性,但无济于事。

<

视图/strong>

@Html.EnumDropDownListFor(x => x.sortType, new { id = "orderResults" })

enumdropdownlist用于有条件隐藏项

var sortTypesToExclude = new[] { SortType.PriceAsc, SortType.PriceDesc }.Cast<int>();
var sortTypes = Enum.GetValues(typeof(SortType)).Cast<int>().Where(i => userLoggedIn || !sortTypesToExclude.Contains(i));
var sortTypesAsSelectList = sortTypes.Select(i => new SelectListItem() { Value = i.ToString(), Text = ((SortType)i).ToString() });