会话变量没有在MVC视图

会话变量没有在MVC视图

问题描述:

显示我想在我的控制器中添加一个会话变量和访问它在我看来,控制器这个样子的..会话变量没有在MVC视图

 public ActionResult GetData() 
    { 
     var data = Repository.GetChartData(DateTime.Now.AddDays(-30), DateTime.Now); 
     Session["TheDate"] = DateTime.Now.ToShortDateString(); 
     return Json(data, JsonRequestBehavior.AllowGet); 
    } 

但在我看来,什么都不会显示使用这个@Session [“TheDate”],我能做些什么来完成这项工作?

+0

你使用ajax调用GetData()吗? –

+0

是的,在一个JavaScript函数为了填充图表。 – MTplus

+0

你能分享ajax代码吗? (javascript函数) –

这里的问题似乎是你正在通过AJAX访问JSON数据。您不在服务器上呈现视图。

使用剃刀语法访问会话@Session["TheDate"]仅在服务器端(在渲染视图期间)起作用。您无法从客户端访问此内容(例如,在AJAX请求的success回调中)。

也许您可以将日期作为JSON对象的一部分传输到客户端?

{ 
    "TheDate": "2017-02-15", 
    "Data": data 
} 

我结束了在我的JavaScript代码中使用JSON响应,而不是为了访问JSON响应。但我仍然认为它奇怪的会话变量不起作用...