会话变量没有在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”],我能做些什么来完成这项工作?
答
这里的问题似乎是你正在通过AJAX访问JSON数据。您不在服务器上呈现视图。
使用剃刀语法访问会话@Session["TheDate"]
仅在服务器端(在渲染视图期间)起作用。您无法从客户端访问此内容(例如,在AJAX请求的success
回调中)。
也许您可以将日期作为JSON对象的一部分传输到客户端?
{
"TheDate": "2017-02-15",
"Data": data
}
答
我结束了在我的JavaScript代码中使用JSON响应,而不是为了访问JSON响应。但我仍然认为它奇怪的会话变量不起作用...
你使用ajax调用GetData()吗? –
是的,在一个JavaScript函数为了填充图表。 – MTplus
你能分享ajax代码吗? (javascript函数) –