从JavaScript中设置Session值,并在C#中获取Session值



是否可以在不使用隐藏字段的情况下从javascript(会话/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) {
    }
}

如果您想将客户端代码中的值提交给服务器端代码,则需要以某种请求的形式提交。表单帖子是一种方式,但如果你不想重新加载页面,它也可以是AJAX请求:

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

在那里使用jQuery可以省去让AJAX在浏览器之间以同样的方式工作的很多麻烦。

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

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

最新更新