【发布时间】:2014-07-03 17:32:20
【问题描述】:
如何使用 javascript 将字符串从代码隐藏 c# 传递到本地存储?
我试图通过 HiddenField 和 Session 缓存传递字符串,但我没有成功通过在 javascript 中检索字符串以将其存储在本地存储中。 我在 c# 中有一个 onclick 函数来接收字符串并将其写入会话缓存中。之后,我尝试通过 js 中的函数检索字符串,在该函数中读取会话缓存并将其写入本地存储。但结果总是空的,除了一些测试,我用静态字符串填充页面加载函数中的会话缓存。
有人怀疑我的解决方案中的问题吗?
非常感谢您的意见。
编辑:
首先我按下按钮“btn1”将myString写入HF,然后“btn2”在JS中读取并将其存储在本地存储中。
HTML 代码
<asp:HiddenField ID="hiddenVar" runat="server" ClientIDMode="Static" />
<asp:Button ID="btn1" runat="server" OnClick="writeInHiddenField" />
<asp:Button ID="btn2" runat="server" OnClientClick="writeHfInLS()" />
<script>
function writeHfInLS() { window.localStorage.setItem('key', document.getElementById("hiddenVar").value); }
</script>
C# 代码中的函数
writeInHiddenField() { hiddenVar.Value = myString; }
【问题讨论】:
-
你尝试了什么?你得到什么错误?
-
我用一些代码扩展了我的问题。没有错误,但是我在JS中调用document.getElementById("hiddenVar").value的时候,值显然是设置回了初始值。就像网站重新加载或者我在两个不同的命名空间中工作或类似的东西。
-
好的,我将 asp:Buttons 移出 UpdatePanel,现在它可以工作了。
标签: c# javascript asp.net local-storage code-behind