如何将.Net代码中的数据隐藏到mixpanel(JavaScript)中

如何将.Net代码中的数据隐藏到mixpanel(JavaScript)中,javascript,.net,mixpanel,Javascript,.net,Mixpanel,我看到的所有示例都是硬编码的。 比如: 如何用服务器端的值替换12148?确定。经过多次实验,我得出了自己的答案,并认为我会与大家分享,这样任何其他有同样问题的“noob”都会有一个资源 首先-从数据库中检索数据(在服务器端)并将其放入隐藏字段(在客户端)。我是这样做的:(在页面加载事件中)(示例在VB中) 客户端上隐藏的字段如下所示:(我将它们放在页面底部) 然后在客户端Javascript(头部)中,使用该方法引用隐藏字段中的值 mixpanel.track(“XXXXXXX.aspx

我看到的所有示例都是硬编码的。 比如:


如何用服务器端的值替换12148?

确定。经过多次实验,我得出了自己的答案,并认为我会与大家分享,这样任何其他有同样问题的“noob”都会有一个资源

首先-从数据库中检索数据(在服务器端)并将其放入隐藏字段(在客户端)。我是这样做的:(在页面加载事件中)(示例在VB中)

客户端上隐藏的字段如下所示:(我将它们放在页面底部)


然后在客户端Javascript(头部)中,使用该方法引用隐藏字段中的值


mixpanel.track(“XXXXXXX.aspx页面加载”);
mixpanel.people.identification(“”);
mixpanel.people.set({
“用户ID”:“”,
“用户类型”:“借款人”,
“$created”:新日期(),
“$last_login”:新日期(),
“$email”:”,
“名字”:“”,
“姓氏”:“”,
“成员自”:”
});
这就是我的工作。MixPanels文档(在我看来)在dot.net实现中缺乏任何真正的帮助。好了。希望它能帮助某人,某地,某时


虽然这个问题和答案被标记为mixpanel,并且与我尝试使用mixpanel有关,但问题的真正基础应该是;“如何在.Net中从数据库获取数据并使其可用于JavaScript”

刚刚想到了一种更好的方法。使用StringBuilder和RegisterStartupScript

Dim User As New UserViewModel(Utilities.CurrentUserID)
Dim strMixCommand As New System.Text.Stringbuilder()

strMixCommand.Append("mixpanel.track('XXXXXX.aspx Page Loaded');")
strMixCommand.Append("mixpanel.people.identify(" & User.UserID & ");"
strMixCommand.Append("mixpanel.people.set({ 'UserID':'" & User.UserID & "',"
strMixCommand.Append("'UserType':'Borrower',"
strMixCommand.Append("'$created':new Date(),"
strMixCommand.Append("'$last_login':new Date(),"
strMixCommand.Append("'$email':'" & User.Email.ToString() & "',"
strMixCommand.Append("'First Name':'" & User.FirstName.ToString() & "',"
strMixCommand.Append("'Last Name':'" & User.LastName.ToString() & "',"
strMixCommand.Append("'Member Since':'" & User.CreatedDate.ToString() & "'})"

Dim strScript As String = "<script type=""text/javascript"" language=""javascript"">" & strMixCommand & "</script>"

Me.ClientScript.RegisterStartupScript(Me.GetType, "Script", strScript)
Dim用户作为新用户视图模型(Utilities.CurrentUserID)
Dim strMixCommand作为新系统.Text.Stringbuilder()
strMixCommand.Append(“mixpanel.track('XXXXXX.aspx页面加载');”)
strMixCommand.Append(“mixpanel.people.identify(&User.UserID&”)
strMixCommand.Append(“mixpanel.people.set({'UserID':'”&User.UserID&',”
附加(“'UserType':'forrower',”
strMixCommand.Append(“$created”):新日期()
strMixCommand.Append(“$last\u login”:new Date(),”
strMixCommand.Append(“$email”:“&User.email.ToString()&“,”
strMixCommand.Append(“'First Name':'”&User.FirstName.ToString()&“,”
strMixCommand.Append(“'Last Name':'”&User.LastName.ToString()&“,”
strMixCommand.Append(“'Member-Since':'”&User.CreatedDate.ToString()&“})”
Dim strScript作为字符串=“&STRIMEXCOMMAND&”
Me.ClientScript.RegisterStartupScript(Me.GetType,“Script”,strScript)

如果这是在页面加载时运行的,这将在服务器端生成JavaScript,预先填充来自数据库的所需数据,而不需要填充隐藏字段的中间步骤,或者在前端有任何mixpanel代码……

为什么不使用基于.NET的服务器端集成来代替某些跟踪操作?

例如,请参见Mixpanel.NET:

它与计算机集成

Dim User As New UserViewModel(Utilities.CurrentUserID) 
hdnUserID.Value = User.UserId
hdnEmail.Value = User.Email.ToString()
hdnFirstName.Value = User.FirstName.ToString()
hdnLastName.Value = User.LastName.ToString()
hdnMemberSince.Value = User.CreatedDate.ToString()
<asp:HiddenField ID="hdnUserID" runat="server" />
<asp:HiddenField ID="hdnEmail" runat="server" />
<asp:HiddenField ID="hdnFirstName" runat="server" />
<asp:HiddenField ID="hdnLastName" runat="server" />
<asp:HiddenField ID="hdnMemberSince" runat="server" />
<script type="text/javascript">
    mixpanel.track("XXXXXXX.aspx Page Loaded");

    mixpanel.people.identify('<% = mxpUserID.Value %>');

    mixpanel.people.set({
        "UserID": '<% = mxpUserID.Value %>',
        "User Type": "Borrower",
        "$created": new Date(),
        "$last_login": new Date(),
        "$email": '<% = mxpEmail.Value %>',
        "First Name": '<% = mxpFirstName.Value %>',
        "Last Name": '<% = mxpLastName.Value %>',
        "Member Since": '<% = mxpMemberSince.Value %>'
    });
</script>
Dim User As New UserViewModel(Utilities.CurrentUserID)
Dim strMixCommand As New System.Text.Stringbuilder()

strMixCommand.Append("mixpanel.track('XXXXXX.aspx Page Loaded');")
strMixCommand.Append("mixpanel.people.identify(" & User.UserID & ");"
strMixCommand.Append("mixpanel.people.set({ 'UserID':'" & User.UserID & "',"
strMixCommand.Append("'UserType':'Borrower',"
strMixCommand.Append("'$created':new Date(),"
strMixCommand.Append("'$last_login':new Date(),"
strMixCommand.Append("'$email':'" & User.Email.ToString() & "',"
strMixCommand.Append("'First Name':'" & User.FirstName.ToString() & "',"
strMixCommand.Append("'Last Name':'" & User.LastName.ToString() & "',"
strMixCommand.Append("'Member Since':'" & User.CreatedDate.ToString() & "'})"

Dim strScript As String = "<script type=""text/javascript"" language=""javascript"">" & strMixCommand & "</script>"

Me.ClientScript.RegisterStartupScript(Me.GetType, "Script", strScript)