从Ajax调用会话变量时无法读取该变量,但如果从ASP.Net中的控制器调用该变量,则可以读取该变量

从Ajax调用会话变量时无法读取该变量,但如果从ASP.Net中的控制器调用该变量,则可以读取该变量,ajax,asp.net-mvc,session,Ajax,Asp.net Mvc,Session,我已经在控制器内创建了一个方法,并试图从中读取会话变量值,我正在从Ajax jQuery调用这个方法,但我无法获得该值。 还有另一种方法,我尝试读取会话值并从控制器本身调用它,然后我就可以读取了。 我在MVC.Net中的会话方面做得不多。请看我的密码- $("#Value").on('click', function () { $("#Modal").modal("hide"); $.ajax(

我已经在控制器内创建了一个方法,并试图从中读取会话变量值,我正在从Ajax jQuery调用这个方法,但我无法获得该值。 还有另一种方法,我尝试读取会话值并从控制器本身调用它,然后我就可以读取了。 我在MVC.Net中的会话方面做得不多。请看我的密码-

           $("#Value").on('click', function () {
                    $("#Modal").modal("hide");
                    $.ajax({
                        type: "GET",
                        url: "Home/GetData",
                        contentType: "application/json; charset=utf-8",
                        dataType: 'json',
                        data: { flag: 1, Id: '@employeeId' },
                        cache: false,
                        success: function (data) {
                            if (data == 'True') {

                                console.log("Data Saved")
                            }
                        }
                    });
                });
GetData方法是在HomeContoller中编写的,我在HomeContoller的索引方法中分配键

public async Task<JsonResult> GetData(int Flag, string EmployeeId)
{
string Token= string.IsNullOrEmpty((string)System.Web.HttpContext.Current.Session["Key"]) ? string.Empty : (string)System.Web.HttpContext.Current.Session["Key"];
}
public异步任务GetData(int标志,字符串EmployeeId)
{
string Token=string.IsNullOrEmpty((string)System.Web.HttpContext.Current.Session[“Key”])?string.Empty:(string)System.Web.HttpContext.Current.Session[“Key”];
}

在控制器中,由于会话是服务器端的对象,所以您可以轻松地读取它。您不能在jQuery中直接访问它。您可以编写一个HttpHandler来共享会话


下面是在视图(.cshtml)中执行类似操作的另一种方法:


没有完全理解您的问题,请添加代码以使其更清晰。共享相关代码谢谢快速回复。我添加了编码-请您查看并提出建议。
<input type="hidden" id="hdnSession" data-value="@Request.RequestContext.HttpContext.Session["keyName"]" />
$(document).ready(function () {
    var value = '@Request.RequestContext.HttpContext.Session["keyName"]';
});