【问题标题】:How do i pass an array from .cs file to .aspx如何将数组从 .cs 文件传递​​到 .aspx
【发布时间】:2016-04-07 02:18:58
【问题描述】:

我有一个名为“Home.aspx”的网络表单。

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

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

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

谁能帮我解决这个问题。

【问题讨论】:

  • 能否请您说明您到目前为止所做的研究?这是一个比较基本的问题。几乎所有的 asp.net 程序,其中许多是开源的,都必须执行与您所要求的类似的事情。
  • 你好安德鲁。我在谷歌搜索了一段时间。我问了这个问题,因为我是 .net 新手(所以不知道这是一个非常基本的问题)并且在 .net 编码方面没有太多经验。
  • 在这种情况下,我建议您参考您用于学习 .net 的学习资源。它应该很早就被覆盖在那里。了解 asp.net 背后的代码是什么以及它是如何工作的。阅读 OOP 以了解什么是类、属性方法以及它们之间的关系也将有所帮助。最后,找出代码的不同部分何时何地被加载和执行。 .net 数组的托管位置、javascript 的运行位置以及服务器的信息如何流向客户端。这应该会有所帮助。
  • 谢谢 Andrew.. 会这样做的。

标签: c# .net webforms


【解决方案1】:

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

然后,在前端,您可以使用&lt;%= myString %&gt;将受保护的属性写入页面

【讨论】:

  • 嗨乔纳森..感谢您的回复。你能告诉我怎么做吗,因为我是.net的新手
【解决方案2】:

有几种方法可以实现它。

  1. 让服务器端代码为您生成整个 JavaScript,这 意味着您需要将 JS 代码构造为 代码隐藏(.aspx.cs 页面)然后使用 ClientScriptManager.RegisterStartupScript 注册它的方法 页面加载时将执行 JS 代码。
  2. 在您的 ASPX 页面上使用服务器端脚本标记。类似于第 1 点,但您在首页上编写服务器端代码。
  3. 应用 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>

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-21
    • 1970-01-01
    • 2012-02-10
    相关资源
    最近更新 更多