C# 如何将数组从.cs文件传递到.aspx

C# 如何将数组从.cs文件传递到.aspx,c#,.net,webforms,C#,.net,Webforms,我有一个叫做“Home.aspx”的网络表单 在Home.aspx.cs中,我创建了一个名为myArray的数组 我想在Home.aspx中使用这个数组来生成一个单词云。 如下所示: <script> $('#wordcloud').jQCloud(myArray,{shape: 'rectangular'}); </script> $('#wordcloud').jQCloud(myArray,{shape:'rectangle'}); 有人能帮我解决这个问题吗。

我有一个叫做“Home.aspx”的网络表单

在Home.aspx.cs中,我创建了一个名为myArray的数组

我想在Home.aspx中使用这个数组来生成一个单词云。 如下所示:

<script>
$('#wordcloud').jQCloud(myArray,{shape: 'rectangular'});
</script>

$('#wordcloud').jQCloud(myArray,{shape:'rectangle'});

有人能帮我解决这个问题吗。

首先,您不想将C生成的数组放到您的aspx页面上,因为该数组是C对象,javascript需要作为文本发送。您希望将数组的字符串输出放到页面上。因此,您应该在代码中创建一个字符串作为受保护的属性,并将数组的字符串放入其中


然后,在前端,您可以使用

将受保护属性写入页面。有几种方法可以实现它

  • 让服务器端代码为您生成整个JavaScript 意味着您需要将JS代码构造为 代码隐藏(.aspx.cs页),然后使用
    ClientScriptManager.RegisterStartupScript
    方法将其注册为 该JS代码将在页面加载时执行
  • 在ASPX页面上使用服务器端脚本标记。这与第1点类似,但您在头版上编写服务器端代码
  • 应用JS序列化,让序列化程序为您生成JS数组
  • 下面是使用序列化方法的示例

    <%
        // create you array here
        var myArray= new string[]{"apple", "orange"};
        var serializer = new System.Web.Script.Serialization.JavaScriptSerializer();
    %>
    
    
    
    然后,您需要将上述代码放在您的ASPX页面上,在JavaScript代码块之前

    <script>
        var myJsArray = <%= serializer.Serialize(myArray) %>;
        $('#wordcloud').jQCloud(myJsArray, {shape: 'rectangular'});
    </script>
    
    
    var myJsArray=;
    $('#wordcloud').jQCloud(myJsArray,{shape:'rectangle'});
    

    但是要记住一件事,服务器端数组对象和客户端javascript数组是两件不同的事情。需要序列化/反序列化以允许在浏览器和web服务器之间传递数据/数据数组

    你能说明你到目前为止做了哪些研究吗?这是一个相当基本的问题。实际上,所有asp.net程序(其中许多是开源的)都必须执行与您要求的类似的操作。嗨,安德鲁。我在谷歌搜索了一段时间。我问这个问题是因为我不熟悉.net(所以我不知道这是一个非常基本的问题),并且在.net编码方面没有太多经验。在这种情况下,我建议你参考你在学习.net时使用的学习资源。应该很早就在那里讨论。阅读asp.net中的代码隐藏及其工作原理。阅读OOP,了解什么是类、属性、方法以及它们之间的关系也会有所帮助。最后,找出何时何地加载和执行代码的不同部分。net阵列的宿主位置、javascript的运行位置以及信息如何从服务器流向客户端。谢谢你,安德鲁。。我会的。嗨,乔纳森。。谢谢你的回复。你能告诉我怎么做吗?因为我是.net新手