2015-09-25 240 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> 

希望它有帮助