簡體   English   中英

如何將.cs文件中的數組傳遞給.aspx

[英]How do i pass an array from .cs file to .aspx

我有一個名為“Home.aspx”的網絡表單。

在Home.aspx.cs中,我創建了一個名為myArray的數組。

我想在Home.aspx中使用這個數組來生成一個詞雲。 如下所示:

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

有人可以幫助我解決這個問題。

首先,您不希望將C#生成的數組放到您的aspx頁面上,因為該數組是C#對象,並且需要將javascript作為文本發送。 您希望將數組的字符串輸出放在頁面上。 因此,您應該在后面的代碼中創建一個字符串作為受保護的屬性,並將數組的字符串放入其中

然后,在前端,您可以使用<%= myString %>將受保護的屬性寫入頁面

有幾種方法可以實現它。

  1. 讓服務器端代碼為您生成整個JavaScript,這意味着您需要在代碼隱藏(.aspx.cs頁面)中將JS代碼構造為字符串,然后使用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();
%>

那么你需要的是在JavaScript代碼塊之前將代碼放在ASPX頁面上。

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

但有一點要記住,服務器端數組對象和客戶端javascript數組是兩個不同的東西。 需要序列化/反序列化以允許數據/數據數組在瀏覽器和Web服務器之間傳遞。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM