1

私が見たすべての例はハードコーディングされています。好き:

mixpanel.people.identify("12148");

12148をサーバー側の値に置き換えるにはどうすればよいですか?

4

3 に答える 3

0

Ok。多くの実験の後、私は自分自身の答えを開発し、それを共有して、同じ問題を抱えている他の「初心者」がリソースを持っていると思いました...

最初-データベース(サーバー側)からデータを取得し、非表示フィールド(クライアント側)に配置します。私はこのようにしました:(ページ読み込みイベントで)(例は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 に答える
0

代わりに、一部の追跡操作に.NETベースのサーバー側統合を使用しないのはなぜですか?

たとえば、Mixpanel.NETを参照してください。

MixpanelsのAPIと統合されています。

于 2012-12-26T16:51:03.767 に答える