我想访问ASP.NET MVC中的Session变量,但是使用JavaScript变量作为键。
以下是ajax调用成功集团中的一个示例:
success: function (data) {
$.each(data, function (idx, user) {
var sessionUserId = '@Session[" ' + user.Id + ' "]'; //this doesn't seem to work
}
任何帮助都将不胜感激。
感谢。
答案 0 :(得分:1)
您不能在服务器端代码中使用客户端变量。您必须将此客户端值发布到服务器(这基本上是Client-Server Architecture的工作方式)。
可能你可以使用ajax从控制器获取sessionId,如下所示:
<强> jquery的强>
$.get("SomeController/GetSessionId?userId=" + user.Id, function(result)
{
var sessionUserId = result.SessionId;
});
<强> SomeController.cs 强>
public ActionResult GetSessionId(string userId)
{
return Json(new JsonResult { SessionId = Session[userId] });
}
上面的代码只是如何实现你想要的例子。可能存在语法错误。
OR
您可以将现有的ajax结果添加到名为SessionUserId
的字段中,并在服务器端定义它的值。
答案 1 :(得分:0)
很简单,试试这个。
var CompanyIdVal = '@Session["CompanyId"]';
这里companyIdVal是javascript变量^其中companyId是会话变量的关键。 我希望这会有所帮助
答案 2 :(得分:0)
从您的查询中,您似乎需要在客户端上使用服务器端值。 由于您的浏览器运行Javascript,您将无法访问服务器的“会话”对象。
因此请尝试以下替代方案: 1.对服务器进行ajax调用,并获取Session值作为响应。 2.在登录期间,将您的值存储在浏览器提供的sessionStorage服务中。
由于