如何在页面加载时将字符串从代码隐藏发送到javascript中的变量?

如何在页面加载时将字符串从代码隐藏发送到javascript中的变量?,javascript,asp.net,Javascript,Asp.net,我想将我使用StringBuilder构建的字符串发送到HTML页面,然后我想在JavaScript代码中使用它 现在我正在做的是: 在客户端: <div id="data"> <asp:Literal ID="Literal1" runat="server"></asp:Literal> </div> 在代码隐藏中: Literal1.Text = strXml.ToString(); this.data.Value = strXml

我想将我使用
StringBuilder
构建的字符串发送到HTML页面,然后我想在JavaScript代码中使用它

现在我正在做的是:

在客户端:

<div id="data">
    <asp:Literal ID="Literal1" runat="server"></asp:Literal>
</div>
在代码隐藏中:

Literal1.Text = strXml.ToString();
this.data.Value = strXml;
问题是,这些数据可以通过
data
div的源代码看到,这是我不允许的

我希望在页面加载后立即使用这个字符串,因此我想在页面加载到服务器后调用AJAX是不可能的

还有更顺利的办法吗


这是一个.NET新手……)

您可以将字符串保存在
HiddenField
中,然后使用如下javascript读取其值

<asp:HiddenField runat="server" ID="MyHidden">
 var data = '<%=strXml%>';
javascript

var data = $('#<%=MyHidden.ClientID%>').val();
javascript代码如下所示

<asp:HiddenField runat="server" ID="MyHidden">
 var data = '<%=strXml%>';
var数据=”;

您可以将字符串保存在一个
隐藏字段中
,然后使用如下javascript读取其值

<asp:HiddenField runat="server" ID="MyHidden">
 var data = '<%=strXml%>';
javascript

var data = $('#<%=MyHidden.ClientID%>').val();
javascript代码如下所示

<asp:HiddenField runat="server" ID="MyHidden">
 var data = '<%=strXml%>';
var数据=”;

我觉得你的方法很好,另一种选择是使用隐藏的
输入:

<input type="hidden" runat="server" id="data" />
在JavaScript中:

var data = $("#data").val();
div
一样,您将能够看到页面源代码中提交的值,但是如果我正确理解您的要求,这是不可避免的,因为需要能够使用JavaScript访问此数据-您可以最好地混淆此数据,然而,无论您选择何种方法,只要有足够决心的人都能够检查和查看这些数据


如果数据不敏感,那么就把它放在表单的一个隐藏字段中,不用担心。如果数据是敏感的,用户不想看到它,那么您可能应该重构您的页面,以便在服务器上完成处理,并且浏览器中只显示要显示的部分。

您的方法在我看来很好,另一种方法是使用隐藏的
输入:

<input type="hidden" runat="server" id="data" />
在JavaScript中:

var data = $("#data").val();
div
一样,您将能够看到页面源代码中提交的值,但是如果我正确理解您的要求,这是不可避免的,因为需要能够使用JavaScript访问此数据-您可以最好地混淆此数据,然而,无论您选择何种方法,只要有足够决心的人都能够检查和查看这些数据


如果数据不敏感,那么就把它放在表单的一个隐藏字段中,不用担心。如果数据是敏感的,用户不想看到它,那么您可能应该重构您的页面,以便在服务器上完成处理,并且浏览器中只显示要显示的部分。

还有其他一些方法可以将内容放入页面,如隐藏字段和数据孤岛,但它们在页面源代码中仍然可见

您可以对数据进行模糊处理,使其更难读取,但在对其进行解读后,仍然可以很容易地将脚本暂停在使用数据的位置,并且数据仍然可见


因此,如果您希望在页面加载时数据立即可用,则需要将其包含在页面中,并且用户可以看到它。

还有其他一些方法将内容放入页面中,如隐藏字段和数据孤岛,但它们在页面源中仍然可见

您可以对数据进行模糊处理,使其更难读取,但在对其进行解读后,仍然可以很容易地将脚本暂停在使用数据的位置,并且数据仍然可见


因此,如果您想在页面加载时立即获得数据,则需要将其包含在页面中,并且用户可以看到该数据。

我无法正确理解您的要求。。如果您不希望客户端看到数据,那么将数据发送到客户端(即使是隐藏的)不是一个好的做法。。。你在客户端用它做什么?我没有正确地得到你的要求。。如果您不希望客户端看到数据,那么将数据发送到客户端(即使是隐藏的)不是一个好的做法。。。你在客户端用它做什么?javascript需要jQuery。javascript需要jQuery。谢谢你的帮助!虽然数据仍然可以从源代码中看到,但感谢您向我介绍.NET的新部分。感谢您的帮助!虽然数据仍然可以从源代码中看到,但感谢您向我介绍.NET的新部分。