ASP.Net Count Clicks Download - PullRequest
       5

ASP.Net Count Clicks Download

1 голос
/ 23 марта 2010

Я думал, что это проще ...

У меня есть элемент управления гиперссылкой asp: target=”_blank”, указывающий на файл, который я хочу загрузить пользователю. Мой план состоит в том, чтобы отслеживать количество раз, когда пользователи нажимают на эту ссылку.

Я подумал, разместив его на панели обновления ajax, чтобы перехватить обратную передачу и избежать полного обновления страницы.

Однако гиперссылка не имеет метода onClick.

С другой стороны, я мог бы использовать linkbutton со встроенным onClick. Но открыть файл в новом окне сложнее ... и мне также нужно было бы сделать что-то вроде:

Response.AppendHeader("Content-Disposition","attachment; filename=myImage.jpg");

Но я слышал, что у вышеуказанного подхода есть некоторые проблемы с PPT, PPTX, PPS, PPSX…

Что вы думаете по этому поводу? Как и почему, вы бы это сделали?

Ответы [ 2 ]

5 голосов
/ 23 марта 2010

Возможно, вы захотите реализовать IHttpHandler для отслеживания ваших загрузок, как показано, например, в этой статье .

По сути, метод ProcessRequest () вашего обработчика будет выглядетьчто-то вроде этого:

public void ProcessRequest(HttpContext context)
{
    string file = context.Request.QueryString["file"];

    // set content type and header (PDF in this example)
    context.Response.ContentType = "application/pdf";
    context.Response.AddHeader(
         "Content-Disposition", "attachment; filename=" + file);

    // assuming all downloadable files are in ~/data
    context.Response.WriteFile(Server.MapPath("~/data/" + file));
    context.Response.End();
}

Тогда ваша гиперссылка для загрузки файла будет выглядеть так:

<a href="/MyApp/MyHandler.ashx?file=someFile.pdf">...</a>
1 голос
/ 23 марта 2010

Вы можете добавить onclick к гиперссылке asp следующим образом:

aHyperlinkControl.Attributes.Add("onclick", "jsCallToSendCountToServer();");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...