如何在代码隐藏中访问Session变量

时间:2016-07-22 09:05:48

标签: javascript c# session

在脚本中我设置了Session。

<script>
    $(document).on('click', '.Pagination', function () {
        '<%Session["Pagination"] = "' + $(this).attr('id') + '"; %>';
        alert('<%=Session["Pagination"] %>');
    });
</script>

警报有效。

当我想从代码隐藏

进行会话时,我无法访问
if (!string.IsNullOrEmpty(Session["Pagination"] as string))
{
    string Val = Session["Pagination"].ToString();
    Session["Pagination"] = null;
}

String Val等于'+ $(this).attr('id')+'

3 个答案:

答案 0 :(得分:1)

我用这种方式做,如果有更好的方式请求告诉我

Javascript功能:

<script>
    $(document).on('click', '.Pagination', function () {
        PageMethods.NumPagination($(this).attr('id'));
    });
</script>

代码背后:

[System.Web.Services.WebMethod]
public static string NumPagination(string Num)
{
    Page Pagination = new Page();
    Pagination.Session["Pagination"] = Num;
    return Num;
}

if (!string.IsNullOrEmpty(Session["Pagination"] as string))
{
    string Select = "1";
    Select = Session["Pagination"].ToString();
    Session["Pagination"] = null;
}

LINK

答案 1 :(得分:1)

我曾经把值放在隐藏变量中,这可以在代码隐藏中访问,无论如何会话对象在代码后面是活动的,你可以将变量设置为session成功。

优势: 全局声明的会话字符串可在代码隐藏中访问,您可以通过调用属性文件

来使用变量

<强> ASP

<asp:HiddenField id="session_obejct" runat="server" />

<强>的Javascript

document.getElementById('session_obejct').value = "Variable you want to set in session";

<强> C#

session["SESSION_NAME"] = session_obejct.Value;

您也可以使用其他方法,我希望这符合您的要求

答案 2 :(得分:0)

您无法从客户端代码中写入(服务器端)会话。

alert('<%=Session["Pagination"] %>');有效,因为它首先执行服务器端,读取Session["Pagination"]的值并将其插入到javascript源中,然后再将该源发送到浏览器。

当浏览器看到该文本并将其解释为javascript时,服务器端命令(<% ... %>)已被替换。无论如何,浏览器都不知道如何处理它们。