2010-08-24 69 views
13

尋求將變量從C#傳遞給JavaScript來使用一些jQuery代碼。傳遞雙精度,整數,字符串,數組。有誰知道如何做到這一點?如何將變量從C#傳遞給JavaScript?

例如,如果我在C#中的代碼剪斷:

string blah = "this is a blah string"; 

我想這傳遞到JavaScript,這樣我可以在jQuery中使用鼠標懸停事件:

$('#myDiv').mouseover(function(){ //do something with my 'blah' string }); 

回答

14

沒關係我覺得我想通了。假設上面的代碼,你可以用javascript編寫:

<script type="text/javascript"> var JavascriptBlah = '<%=blah%>'</script> 

這將通過c#中的等待到客戶端的JavascriptBlah。然後你可以在客戶端操縱。

+0

這樣做的缺點是,如果「blah」中有一個單引號,那麼你遇到了麻煩。在傳遞字符串之前先將字符串轉換爲JSON是有意義的。 – 2015-01-23 21:28:43

+0

有誰知道如果使用「<%= VariableName%>,如果變量」blah「正在被賦值爲」private async Task Foo()「 我有它被分配在一個私人異步任務中,我想知道這是不是爲我工作的原因。 – 2016-03-11 19:10:24

2

我最近使用這個ToJson()擴展方法以及Page.RegisterClientScriptBlock方法傳遞一個多級映射對象,填充三個級聯下拉級別。

+0

不確定你在這裏的含義,但你可以看到上面的編輯部分? – locoboy 2010-08-24 05:33:14

+1

**警告** Page.RegisterClientScriptBlock自[Framework v.4.0](http://msdn.microsoft.com/it-it/library/ee471421(v = VS.100).aspx)開始就是obsolite。現在推薦使用[ClientScriptManager.RegisterClientScriptBlock](http://msdn.microsoft.com/zh-cn/library/system.web.ui.clientscriptmanager.registerclientscriptblock.aspx)方法。 – 2012-09-06 10:44:00

0

你可以用asp:HiddenField變量代碼隱藏和js .. 之間傳遞值這與回送過程中頁面的視圖狀態來完成...

+0

你能告訴我一些代碼嗎? – locoboy 2010-08-24 15:34:58

+0

http://stackoverflow.com/questions/252222/access-an-asphiddenfield-control-in-javascript鏈接有一個通過這種方式示例代碼,您可以訪問隱藏字段的值,無論是後面的代碼還是JavaScript – dankyy1 2010-08-25 08:00:56

1

您可以在代碼中使用的公共屬性後面還有會議。以下是使用可從Javascript函數讀取的公共屬性的示例。

前端:

function IsAgentInProgram() 
{ 
    var optStatus = "<%=AgentOptInStatus%>"; 

    if (optStatus == "True") 
     alert("You are opted in!"); 
    else 
     alert ("You are opted OUT"); 
} 

代碼背後:在C#中

public bool AgentOptInStatus; 

private void Page_Load(object sender, System.EventArgs e) 
{ 
    this.AgentOptInStatus = true; 

} 
相關問題