2013-10-08 140 views
0

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

string aaa = "hello"; 

然後

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

但是,我問,如果有不使用<script>塊,使該變量爲一個javascript等效的另一種方式,照片直接使用只有C#代碼。

謝謝。

+0

您可以使用RegisterClientScriptBlock編寫設置變量的javascript。或者使用json來拉取變量。 –

+0

如果不在腳本塊內部,您如何使用javascript var? – simonlchilds

+0

'RegisterStartupScript' http://msdn.microsoft.com/en-us/library/bahh2fef.aspx –

回答

0

好,最好的方法是將包括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>標籤反正結束了的更精細的方式。

1

寫的裂口到div的InnerHtml在C#中,並獲得div的innerHTML從您的JavaScript代碼。

注:

  1. 你將不得不作出股利runat="server"
  2. 請注意,C#的InnerHtml和js的innerHTML之間的套管(大寫/小寫)差異在 之間。
相關問題