[c#]从 MVC4 的会话变量中检索列表吗?

发布时间: 2017/2/28 21:37:29
注意事项: 本文中文内容可能为机器翻译,如要查看英文原文请点击上面连接.

新的 Asp.Net MVC4 !我存储到会话列表。从该届会议上,我试图从会话变量中检索列表。后得到它想要获取的行值基于索引值。如何让它请帮我解决这个问题。在此先感谢

这是我对会议的 LINQ 结果︰

var notifications = (from t in db.Tbl_Tasks
                                     join tu in db.Tbl_User_Task on t.TaskId equals tu.Task_Id
                                     where u.UserID==Id && t.TaskStart == startdate && t.TaskEnd == enddate 
                                     orderby t.TaskStart
                                     select new
                                     {
                                         t.TaskId,
                                         t.Task,
                                         tu.AdminComment,
                                     }).ToList(); 
    var NotificationList = notifications.GroupBy(x => x.Task_User_Id).Select(group => group.LastOrDefault()).ToList();
    Session["MyTaskListSession"] = NotificationList;  

我越来越像这届会议︰

var myTaskList = 会议 ["MyTaskListSession"];

解决方法 1:

我认为下面的东西。

创建一个类。

public class Test
{ 
   public int TaskId {get;set;}
   public string Task {get;set;}
   public string AdminComment {get;set;}
}

var notifications = (from t in db.Tbl_Tasks
                                     join tu in db.Tbl_User_Task on t.TaskId equals tu.Task_Id
                                     where u.UserID==Id && t.TaskStart == startdate && t.TaskEnd == enddate 
                                     orderby t.TaskStart
                                     select new Test
                                     {
                                       TaskId=  t.TaskId,
                                       Task =  t.Task,
                                       AdminComment =  tu.AdminComment,
                                     }).ToList(); 
    var NotificationList = notifications.GroupBy(x => x.Task_User_Id).Select(group => group.LastOrDefault()).ToList();
    Session["MyTaskListSession"] = NotificationList; 

你可以像这样的会话值。

var myTaskList= (List<Test>)Session["MyTaskListSession"];

注意︰ 当您不指定任何类型它将创建匿名类型。它自动生成的我们不知道它的类型。所以你必须使用反射,或使用强类型类像"测试"。

所以你以后可以工作在那。

如果你不想使用强类型然后和如果我假设您正在使用.NET 框架 4.0,那么你可以这样做。

var notifications = (from t in db.Tbl_Tasks
                                     join tu in db.Tbl_User_Task on t.TaskId equals tu.Task_Id
                                     where u.UserID==Id && t.TaskStart == startdate && t.TaskEnd == enddate 
                                     orderby t.TaskStart
                                     select new
                                     {
                                         t.TaskId,
                                         t.Task,
                                         tu.AdminComment,
                                     }).ToList(); 
    var NotificationList = notifications.GroupBy(x => x.Task_User_Id).Select(group => group.LastOrDefault()).ToList();
    Session["MyTaskListSession"] = NotificationList;  

检索时再做

dynamic myTaskList  =   Session["MyTaskListSession"];
官方微信
官方QQ群
31647020