这是我的模型的一部分,具有枚举:我想在存储库中创建,这是我的创建和搜索方法的一部分
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>
当我为搜索工作日添加此代码时,表中的所有列表不显示,但搜索有效
你的枚举是一个整数值,为什么所有这些字符串业务?你可以这样做:
<select asp-for="WeekDayName" asp-items="Html.GetEnumSelectList<WeekDayName>()" class="form-control input-default"></select>
这将为您提供一个不错的下拉菜单,其中包含所有可能的枚举值。
如果您将模型上的
WeekDayName
属性设置为键入 WeekDayName
而不是字符串,ASP.Net Core 将自动为您解析它。