在JavaScript中设置会话值并在C#中获取会话值

时间:2013-07-03 06:01:19

标签: session viewstate

是否可以从javascript(Session / ViewState)设置值并在不使用隐藏字段的情况下获取C#中的值?


它的工作是存储来自javascript的值,并且可用于获取C#中的值(page.request [“Token”]),但它不适合我,因为有一个回发动作“form.submit(); “

 function setToken(Token) {
    try {
        var form = document.createElement("form");
        var field = document.createElement("input");
        field.setAttribute("type", "hidden");
        field.setAttribute("name", 'Token');
        field.setAttribute("value", accessToken);
        form.appendChild(field);
        document.body.appendChild(form);
        form.submit();
    } catch (err) {
    }
}

1 个答案:

答案 0 :(得分:0)

如果要将客户端代码中的值提交到服务器端代码,则需要在某种请求中提交。表单帖子是单向的,但如果您不希望页面重新加载,那么同样可能是AJAX请求:

function setToken(accessToken) {
   $.post('/SetToken', { Token: accessToken });
}

使用jQuery,因为它可以为您节省很多麻烦,让您在浏览器中以相同的方式运行AJAX。

在示例中,我向名为/SetToken的页面发布请求,该页面可能是您网站中可以更新令牌的代码的任何网址。您自己的示例提交的表单没有action,这意味着它将提交到当前页面。你也可以很容易地做到这一点

$.post(location.href, { Token: accessToken });