0

我正在使用 ASP.NET MVC3 C#,并在模型中编写了一个方法,该方法获取文件并将它们归档为 ZIP 格式,例如:

HttpContext.Current.Response.ContentType = "application/zip";
HttpContext.Current.Response.AddHeader( "content-disposition", "filename=" + myFilename );

 ZipForge zip = new ZipForge();
    try {
       zip.FileName = Path.Combine( folder, myFilename );
       zip.OpenArchive( System.IO.FileMode.Create );
       zip.BaseDir = Path.GetPathRoot( aPath );
       zip.Options.StorePath = StorePathMode.NoPath;

       zip.AddFiles( file1 );
       zip.AddFiles( file2 );

       zip.CloseArchive();

       HttpContext.Current.Response.WriteFile( zip.FileName );

    } catch {}

ZIP 文件在请求中写入并发送回有人按下Download按钮的原始页面。

我想为 Google Analytics 跟踪这个 ZIP 文件。

在这种情况下该怎么做?

我阅读了http://support.google.com/googleanalytics/bin/answer.py?hl=en&answer=55529但在我的情况下太复杂了。

我必须在 Controller 中使用 Javascript 对象吗?

我需要一个建议谢谢

4

1 回答 1

0

我阅读 了http://support.google.com/googleanalytics/bin/answer.py?hl=en&answer=55529 但在我的情况下太复杂了。

为什么?只需生成指向您的下载控制器操作的链接,如文章中所述:

@Html.ActionLink(
    "download file", 
    "download", 
    "home", 
    null, 
    new { 
        onclick = "javascript: _gaq.push(['_trackPageview', '" + Url.Action("download", "home") + "']);" 
    }
)

或者不显眼地做:

@Html.ActionLink(
    "download file", 
    "download", 
    "home", 
    null, 
    new { 
        id = "mydownloadlink"
    }
)

然后在一个单独的 javascript 文件中:

$(function() {
    $('#mydownloadlink').click(function() {
        _gaq.push(['_trackPageview', this.href]);
    });
});
于 2012-05-04T08:05:16.270 回答