【问题标题】:Unable to read session variable when I am calling it from Ajax but I can read if I call it from controller in ASP.Net当我从 Ajax 调用会话变量时无法读取它,但如果我从 ASP.Net 中的控制器调用它,我可以读取它
【发布时间】:2018-07-29 10:11:09
【问题描述】:

我在控制器中创建了一个方法并尝试从中读取会话变量值,我正在从 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 的 Index 方法中分配 Key。

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"];
}

【问题讨论】:

  • 没有完全理解您的问题,能否请您添加代码以更清晰。
  • 分享相关代码
  • 感谢您的快速回复。我已添加编码-请您查看并提出建议。

标签: ajax asp.net-mvc session


【解决方案1】:

在您的控制器中,您可以轻松阅读它,因为 Session 是 服务器端 对象。您不能直接在 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"]';
}); 

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-11-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-14
    • 1970-01-01
    • 1970-01-01
    • 2021-12-23
    相关资源
    最近更新 更多