访问客户端代码中的服务器数据或变量(Javascript)

时间:2012-12-13 11:22:00

标签: javascript asp.net security server-variables

我知道我们可以使用eval并访问C#代码中声明的公共属性来访问服务器端变量。但是,建议不要将其作为最安全的方法。在java脚本中访问服务器变量的最佳方法是什么? 请举例说明ASP.Net网络表单?

1 个答案:

答案 0 :(得分:1)

服务器端的变量与客户端的变量位于不同的Universe中。这两个Universe位于不同的计算机上,它们之间唯一的通信是页面视图和回发到服务器的帖子。

所以第一个是将html页面渲染中的代码后面的变量作为数字提供给javascript,例如:

<script>
 var OurVariable = 334;
</script>

要渲染你有很多选项,例如你可以使用Literal并在后面的代码上渲染它:

<asp:Literal runat="server" ID="txtScriptOnMe" />

以及代码背后:

txtScriptOnMe.Text = "<script> var OurVariable = 334; </script>";

现在你已经在客户端发送了334。使用javascript修改后,下一步是在服务器上发回新号码 - 这只能在PostBack或Ajax Call上以及使用隐藏输入时完成。

例如,你有这个输入<input id="hidden1" type="hidden" runat="server" />并使用javascript你可以改变它的值并将其发送回服务器端,然后从后面的代码中读取它,你去了 - 你有来自变量的通信关于代码背后和javascript。

例如,你可以在javascript上写

OurVariable = 221;
document.getElementById("<%=hidden1.ClientID%>").value = OurVariable;

并将其更改为221,并将其发送到

后面的代码中