我是Asp.Net MVC4的新手。我正在将一个列表存储到Session。从那个会话我试图从会话变量中检索列表。获得它之后,我想根据索引值获取行值。怎么弄它请帮我解决这个问题。提前致谢
这是我对会话的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 = Session [“MyTaskListSession”];
答案 0 :(得分: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"];
注意: 如果不指定任何类型,则会创建匿名类型。它是自动生成的,我们不知道它的类型。因此,要么必须使用反射,要么使用强类型类,如“Test”。
所以你以后可以继续这样做。
如果您不想使用强类型,那么如果我假设您使用的是.NET Framework 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"];