2015-09-25 241 views
0

,所以我的任務很簡單 - 我有我有一個JavaScript代碼(實際上是一個代碼,與谷歌分析工作; anaway這並不重要)獲取JavaScript變量的值

<script> 

    ga('ecommerce:addTransaction', { 
       'id': '52',     

       'revenue': '599.200',    

      }); 
      </script> 

問題是這些id和'收入'的值我應該從服務器獲取 - 在這種情況下,我的aspx頁面。

所以在我的aspx.cs我有一個如此簡單的方法,它返回一個對象具有ID和收入財產;所以任務是我shoudld某種方式與這些屬性

protected OrderIndo RenderScript() 
    { 
    //if (this.OrderID == null) return; 

    OrderIndo orderInfo = new OrderInfo(); 
    orderInfo.id = 12; 
    orderInfo.revenue = somestringvariable; 

    return orderInfo; 


    } 
+0

您需要很好地理解客戶端和服務器之間的分離。服務器執行,然後將生成的HTML,CSS和JavaScript發送到客戶端。然後客戶端運行。如果發生回發,表單將被髮送回服務器,服務器將自行重新發送並將新的HTML,CSS和JS發送給客戶端。因此,在這種情況下最容易做的事情之一是將數據嵌入到'' – mason

+0

什麼是'OrderIndo'或' OrderInfo'? – luchosrock

回答

0

連接我的JavaScript變量在您的代碼隱藏在上課開始創建的OrderIndo一個protected變量。將其填充到PageLoad中。在你的aspx頁面上渲染它使用

<script> 

    ga('ecommerce:addTransaction', { 
       'id': '<%=OrderIndo.id%>',     

       'revenue': '<%=OrderIndo.revenue%>',    

      }); 
</script> 
+0

如果這個javascript是在一個單獨的js文件中,它不會與服務器標籤<% –

+0

@RicardoPontual耶,但是OP說他有一個aspx和aspx.cs頁面, – luchosrock

0

當你使用asp.net標記時,我假設你使用的是Asp.Net Web窗體。

您可以簡單地註冊在代碼中的javascript的背後,是這樣的:

string gaScript = "<script>ga('ecommerce:addTransaction', { 'id': '{0}', 'revenue': '{1}', });</script>"; 
    Page.ClientScript.RegisterStartupScript(GetType(), "ga", string.Format(gaScript, orderInfo.id, orderInfo.revenue)); 

或者在碼寄存器變量背後:

string gaScript = "<script>var gaId='{0}'; var gaRevenue='{1}'</script>"; 
      Page.ClientScript.RegisterStartupScript(GetType(), "ga", string.Format(gaScript, orderInfo.id, orderInfo.revenue)); 

並讀取JavaScript中的變量:

<script> 

    ga('ecommerce:addTransaction', { 
       'id': gaId,     

       'revenue': gaRevenue,    

      }); 
      </script> 

希望它有幫助