从Ajax调用会话变量时无法读取该变量,但如果从ASP.Net中的控制器调用该变量,则可以读取该变量
我已经在控制器内创建了一个方法,并试图从中读取会话变量值,我正在从Ajax jQuery调用这个方法,但我无法获得该值。 还有另一种方法,我尝试读取会话值并从控制器本身调用它,然后我就可以读取了。 我在MVC.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(
$("#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"]';
});