我正在尝试将一些对象保存到列表中供以后使用。这是我存储它们的方式:
List<Engagement> engagementsList = new List<Engagement>();
foreach (Engagement engagement in db.Engagements)
{
// Implementation here
}
TempData["DeletedE"] = engagementsList;
TempData.Keep();
然后,我正在尝试遍历列表,但是我得到了错误:
无法对&#39;对象&#39;
类型的变量进行操作我正在通过以下方式迭代列表:
foreach (Engagement e in TempData["DeletedE"])
{
// Implementation here...
}
非常感谢任何帮助。
答案 0 :(得分:2)
由于TempData["DeletedE"]
的类型为object
,因此您无法枚举它。
要做到这一点,你必须将它强制转换为IEnumerable<Engagement>
:
var enumerable = TempData["DeletedE"] as IEnumerable<Engagement>;
foreach (Engagement e in enumerable)
{
}
答案 1 :(得分:1)
MVC's TempData[]
indexer returns an object
,你无法迭代。
您需要将其转换为存储在其中的相同类型:
foreach (var engagement in (List<Engagement>)TempData["DeletedE"])
{
}
答案 2 :(得分:0)
将你的循环改为:
foreach (Engagement e in TempData["DeletedE"].Cast<Engagement>())
{
}