【发布时间】:2013-12-21 06:31:17
【问题描述】:
这里有棘手的问题。我正在尝试将列表中的项目转换为 IEnumerable<SelectListItem>。
列表
dynamicTextInDatabase 只返回我的数据库中使用的所有枚举。目前只返回 1 和 2。数据类 simple 保存一个 int 值。
dynamicTextEnumsInDatabase 与上面的列表相同,只是在实际存储我的枚举的类中。
dynamicTextEnumsAll 是我的应用程序中所有可用枚举的列表。当前:1、2 和 3。
dynamicTextEnumsAvaiable 是所有未使用枚举的列表。它结合所有枚举,然后删除数据库列表中的枚举。
我需要通过 ViewBag 将 dynamicTextEnumsAvaiable 传递给我的视图以显示在下拉列表中。但是,它必须是 IEnumerable<SelectListItem> 而不是 List。
代码
var dynamicTextInDatabase = new List<DynamicTextEnumData>();
var dynamicTextEnumsInDatabase = new List<DynamicTextEnum>();
var dynamicTextEnumsAll = new List<DynamicTextEnum>();
IEnumerable<SelectListItem> list;
using (var proxy = new Proxy<IDynamicText>())
{
dynamicTextInDatabase = proxy.Channel.DynamicTextGetActiveEnums(Helper.GetCallingUser());
}
foreach (DynamicTextEnumData item in dynamicTextInDatabase)
{
var dynamicTextEnum = (DynamicTextEnum)item.DynamicTextEnum;
dynamicTextEnumsInDatabase.Add(dynamicTextEnum);
}
foreach (DynamicTextEnum item in Enum.GetValues(typeof(DynamicTextEnum)))
{
dynamicTextEnumsAll.Add(item);
}
var dynamicTextEnumsAvaiable = dynamicTextEnumsAll.Except(dynamicTextEnumsInDatabase).ToList();
if (dynamicTextEnumsAvaiable.Count == 0)
{
TempData["Error"] = "To update the text of a message or warning, please select it from the grid below.";
return RedirectToAction("Index");
}
ViewBag.AvaiableEnums = dynamicTextEnumsAvaiable;
return View();
【问题讨论】:
标签: c# asp.net-mvc enums