簡體   English   中英

如何將字符串從C#傳遞到javascript變量

[英]How to pass a string from C# to a javascript variable

我喜歡將字符串從C#傳遞到javascript變量。 簡單的方法是這樣的:

string aaa = "hello";

接着

<script>
    var javacriptVariable = "<%=aaa%>";
</script>

但是,我在問是否還有另一種方法,不使用<script>塊使該變量成為僅使用C#代碼的javascript等效變量。

謝謝。

用C#將其寫入div的InnerHtml ,然后從JavaScript代碼獲取div的innerHTML

筆記:

  1. 您必須使div runat="server"
  2. 請注意,C#的InnerHtml和js的innerHTML大小寫不同(大寫/小寫)。

好吧,最好的方法是包含JSON.NET並將其輸出:

var aaa = <%= JsonConvert.Serialize(aaa) %>;

然后,無論它是字符串,整數,數組還是以JS處理方式進行序列化的任何東西。 如有必要,這還將處理任何形式的轉義(例如aaa = "Hello \\"World\\"!"

另一個選擇是使用處理程序/ AJAX來檢索它(但是對於這樣一個簡單的任務而言,這會產生過多的開銷)。

最后,您可以注冊腳本:

Type type = this.GetType();
string scriptName = "assign aaa";
ClientScriptManager clientScript = Page.ClientScript;
if (!clientScript.IsClientScriptBlockRegistered(type, scripName))
{
    StringBuilder sb = new StringBuilder();
    sb.Append("<script type=\"text/javascript\">")
      .AppendFormat("var aaa = {0};", JsonConvert.Serialize(aaa))
      .Append("</" + "script>");
    clientScript.RegisterClientScriptBlock(type, scripName, sb.ToString());
}

但是,上述只是結束<script>標記的一種更為精致的方法。

其實,我創建了一個名為的NuGet pacakge 口岸所做的正是這一點:

http://www.nuget.org/packages/NGon/

這是Rails寶石Gon的撕裂

暫無
暫無

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

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