将一块 JSON 传递给页面的一种方法是直接在页面上呈现它。
<script type="text/javascript">
var myData = <%= MyJsonString %>;
</script>
MyJsonString
上面是你的代码后面的一个属性,它包含作为 JSON 数据字符串的序列化对象结构。如果您愿意,它可以是一个方法调用。无论哪种方式,它都必须能够在调用页面的渲染方法之前返回 JSON 字符串。
显然,您需要将它加载到适合您的应用程序的位置。如果我这样做,它通常在一个小函数内,所以它不是全局的,它在实际使用数据的某个地方调用 .js 文件中的另一个函数。
还要注意呈现字符串后的分号(尽管我相信分号在 javaScript 中并不是绝对必要的,但我的老 C/C++/C# 程序员似乎无法放弃它们。)
请注意,它正在渲染,<%= %>
因此不会发生 HTML 编码。这很重要,否则 JSON 字符串会出现乱码,并且在脚本块中没有任何意义。
最后,我已经有几年没有做过 WebForms 开发了,所以我可能对一些细节感到生疏——我希望以上内容对你有意义并且对你有用。
更新
我只记得 WebForms 有一个“文字”控件,这很可能是您想要的,以符合约定。像这样的东西,也许:
<script type="text/javascript">
var myData = <asp:Literal runat="server" id="MyJsonLiteralControl" />;
</script>
在您后面的代码中,将文字控件的 Text 设置为您生成的 JSON 字符串。