从枚举中获取字符串以在 ASP.NET 中进行搜索

问题描述 投票:0回答:1

这是我的模型的一部分,具有枚举:我想在存储库中创建,这是我的创建和搜索方法的一部分

  public WeekDayState WeekDayState { get; set; }

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


    public enum WeekDayState
    {
        [Display(Name = "All")]
        All,
        [Display(Name = "Active")]
        Active,
        [Display(Name = "InActivate")]
        InActivate,
    }

现在我想在我的方法中使用工作日名称进行搜索

如何在枚举名称中搜索:


            switch (filterWeekDayFoodViewModel.WeekDayState)
            {
                case WeekDayState.All:
                    break;

                case WeekDayState.Active:
                    break;
                case WeekDayState.InActivate:
                    break;
            }

        

if (Enum.TryParse(filterWeekDayFoodViewModel.WeekDayName.ToString(), out WeekDayName weekDayNameEnum))
       {
           query = query.Where(q => q.WeekDayName == weekDayNameEnum);
       }

            }

我看到错误,因为它无法将枚举转换为字符串

这也是我观点的一部分:

     <div class="form-group">
         <input type="text" asp-for="WeekDayName" class="form-control input-default">
     </div>

 </div>
                        

 <div class="col-sm-2">
     <div class="form-group">

         <select class="form-control show-tick" tabindex="-98 " asp-for="WeekDayState">
             <option value="0">All</option>
             <option value="1">Active</option>
             <option value="2">InActive</option>


         </select>
     </div>
 </div>

 <div class="col-sm-2">
     <button type="submit" class="btn mb-1 btn-secondary mb-1">Search</button>
 </div>

当我为搜索工作日添加此代码时,表中的所有列表不显示,但搜索有效

string asp.net-core search view enums
1个回答
0
投票

你的枚举是一个整数值,为什么所有这些字符串业务?你可以这样做:

<select asp-for="WeekDayName" asp-items="Html.GetEnumSelectList<WeekDayName>()" class="form-control input-default"></select>

这将为您提供一个不错的下拉菜单,其中包含所有可能的枚举值。

如果您将模型上的

WeekDayName
属性设置为键入
WeekDayName
而不是字符串,ASP.Net Core 将自动为您解析它。

© www.soinside.com 2019 - 2024. All rights reserved.