在动作之间传递列表

时间:2013-11-27 03:11:01

标签: c# asp.net asp.net-mvc asp.net-mvc-3 asp.net-mvc-4

创建一个简单的通知系统,如果他们有任何新通知,则会在登录时将用户重定向到通知页面。

我在登录方法中获取通知数据并将所有通知添加到列表中。然后,我想将此列表传递给另一个控制器中的另一个操作,以便在那里做一些逻辑,这样我就可以保持我的登录控制器尽可能不受影响。问题是列表不会传递redirectToAction所以我需要显然使用tempdata。

我想传递的列表是一个对象列表

List<Notificaions> = new List<Notifications>();

// populate list.

      if (notifications.Count > 0)
        {
         TempData["notifications"] = notifications;
          return RedirectToAction("notification", "main");
       }

然后我的Notfication行动

  public ActionResult Notification ()
   {
       List<NotificationViewModel> notifications = new List<Notifications>();
       notifications = TempData["notifications"];
   }

我需要弄清楚如何将tempdata转换回对象列表。请有人帮帮忙。

提前致谢

1 个答案:

答案 0 :(得分:2)

TempData["notifications"]投放到List<NotificationViewModel>

public ActionResult Notification ()
{
    List<NotificationViewModel> notifications = new List<Notifications>();
    notifications = (List<NotificationViewModel>)TempData["notifications"];
}