1

我见过的所有例子都是硬编码的。喜欢:

mixpanel.people.identify("12148");

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

4

3 回答 3

0

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

例如,请参阅 Mixpanel.NET:

它与Mixpanels 的 API集成。

于 2012-12-26T16:51:03.767 回答
0

好的。经过大量实验,我开发了自己的答案,并认为我会分享它,以便任何其他有相同问题的“菜鸟”都有资源......

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

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" />

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

<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>

这对我有用。MixPanels 文档在 dot.net 实施中缺乏(在我看来)任何真正的帮助。所以你有它。希望它可以帮助某人,某处,某个时间。

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

于 2012-10-25T17:35:22.237 回答
0

只是想到了一个更好的方法。使用 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)

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

于 2012-10-26T15:35:49.747 回答