是否可以在不使用隐藏字段的情况下从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 });