如何使用javascript变量作为键访问asp.net mvc中的会话变量?

时间:2017-06-06 08:04:57

标签: javascript asp.net-mvc

我想访问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

    }

任何帮助都将不胜感激。

感谢。

3 个答案:

答案 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服务中。

由于