在 Session 变量中存储对象列表
Store List of objects in Session variable
我想将控制器调用的查询结果存储在一个变量中
public ActionResult Index()
{
Session["dateDebut"] = DateTime.Now.AddMonths(-1).ToString("dd/MM/yyyy", CultureInfo.InvariantCulture);
Session["dateFin"] = DateTime.Now.AddDays(0).ToString("dd/MM/yyyy", CultureInfo.InvariantCulture);
HostClassReq hostClassChart = new HostClassReq();
Chart_Event cex = new Chart_Event();
var viewModel = new Chart_Event
{
chartVM = hostClassChart.callHostClass()
};
return View(viewModel);
}
这是方法 callHostClass 的实现
public Highcharts callHostClass()
{
DateTime begin = DateTime.ParseExact(HttpContext.Current.Session["dateDebut"].ToString(), "dd/MM/yyyy",
System.Globalization.CultureInfo.InvariantCulture);
DateTime end = DateTime.ParseExact(HttpContext.Current.Session["dateFin"].ToString(), "dd/MM/yyyy",
System.Globalization.CultureInfo.InvariantCulture).AddDays(1);
CreateChart createChart = new CreateChart();
List<String> xs = new List<string>();
var maListe = (from p in db.exclure
where (p.type.Contains("Host Class"))
group p by p.libelle into g
select new
{
libellex = g.Key
}).ToList();
List<string> strListe = new List<string>();
foreach (var x in maListe.Select(i => i.libellex))
{
strListe.Add(x.ToString());
}
var myList = (from p in db.Full
where ( (p.date_reception > begin & p.date_reception < end & !p.mc_host_class.Contains("NULL")) &
(!strListe.Contains(p.mc_host_class)))
group p by p.mc_host_class into g
orderby g.Count() descending
select new
{
hostclassx = g.Key,
countx = g.Count()
}).Take(10).ToList();
// HttpContext.Current.Session["allList"] = myList;
List<Full> questions = (List<Full>)HttpContext.Current.Session["allList"];
// questions = List <Full> myList;
foreach (var x in questions)
{
}
object[] ys = myList.Select(a => (object)a.countx.ToString()).ToArray();
foreach (var x in myList.Select(i => i.hostclassx))
{
if (x.Length > 20)
{
xs.Add((x.Substring(0, 20)));
}
else
{
xs.Add(x);
}
}
var chart = createChart.createChartBar(xs, ys, 10);
return chart;
}
我需要将 myList 查询的结果存储在一个变量中,该变量将被另一个变量访问类我需要一些帮助。
你在找这个吗?
Session["yourName"]=myList;
编辑 问题编辑出现后,他想在 class 中使用会话而不扩展控制器。
新部分
因此您不能使用最初的建议,而是包括 System.Web using System.Web;
并使用
HttpContext.Current.Session["yourName"]=myList;
当你必须得到它时,你使用
var yourList = (myListType)Session["yourName"];
如果您在 class 扩展控制器中或
var yourList = (myListType)HttpContext.Current.Session["yourName"];
否则。
试试这个:
HttpContext.Current.Session["name"] = mylist;
但要小心访问这样的会话,可能会导致 null-ref 异常
我想将控制器调用的查询结果存储在一个变量中
public ActionResult Index()
{
Session["dateDebut"] = DateTime.Now.AddMonths(-1).ToString("dd/MM/yyyy", CultureInfo.InvariantCulture);
Session["dateFin"] = DateTime.Now.AddDays(0).ToString("dd/MM/yyyy", CultureInfo.InvariantCulture);
HostClassReq hostClassChart = new HostClassReq();
Chart_Event cex = new Chart_Event();
var viewModel = new Chart_Event
{
chartVM = hostClassChart.callHostClass()
};
return View(viewModel);
}
这是方法 callHostClass 的实现
public Highcharts callHostClass()
{
DateTime begin = DateTime.ParseExact(HttpContext.Current.Session["dateDebut"].ToString(), "dd/MM/yyyy",
System.Globalization.CultureInfo.InvariantCulture);
DateTime end = DateTime.ParseExact(HttpContext.Current.Session["dateFin"].ToString(), "dd/MM/yyyy",
System.Globalization.CultureInfo.InvariantCulture).AddDays(1);
CreateChart createChart = new CreateChart();
List<String> xs = new List<string>();
var maListe = (from p in db.exclure
where (p.type.Contains("Host Class"))
group p by p.libelle into g
select new
{
libellex = g.Key
}).ToList();
List<string> strListe = new List<string>();
foreach (var x in maListe.Select(i => i.libellex))
{
strListe.Add(x.ToString());
}
var myList = (from p in db.Full
where ( (p.date_reception > begin & p.date_reception < end & !p.mc_host_class.Contains("NULL")) &
(!strListe.Contains(p.mc_host_class)))
group p by p.mc_host_class into g
orderby g.Count() descending
select new
{
hostclassx = g.Key,
countx = g.Count()
}).Take(10).ToList();
// HttpContext.Current.Session["allList"] = myList;
List<Full> questions = (List<Full>)HttpContext.Current.Session["allList"];
// questions = List <Full> myList;
foreach (var x in questions)
{
}
object[] ys = myList.Select(a => (object)a.countx.ToString()).ToArray();
foreach (var x in myList.Select(i => i.hostclassx))
{
if (x.Length > 20)
{
xs.Add((x.Substring(0, 20)));
}
else
{
xs.Add(x);
}
}
var chart = createChart.createChartBar(xs, ys, 10);
return chart;
}
我需要将 myList 查询的结果存储在一个变量中,该变量将被另一个变量访问类我需要一些帮助。
你在找这个吗?
Session["yourName"]=myList;
编辑 问题编辑出现后,他想在 class 中使用会话而不扩展控制器。
新部分
因此您不能使用最初的建议,而是包括 System.Web using System.Web;
并使用
HttpContext.Current.Session["yourName"]=myList;
当你必须得到它时,你使用
var yourList = (myListType)Session["yourName"];
如果您在 class 扩展控制器中或
var yourList = (myListType)HttpContext.Current.Session["yourName"];
否则。
试试这个:
HttpContext.Current.Session["name"] = mylist;
但要小心访问这样的会话,可能会导致 null-ref 异常