Где разместить код Google Analytics в веб-приложении ASP.NET - PullRequest
3 голосов
/ 19 октября 2010

Я хочу найти место для размещения своего кода Google Analytics в моем веб-приложении ASP.NET. Я хотел бы разместить его где-то один раз и не нужно копировать и вставлять код в несколько файлов. Есть ли где-нибудь, что я мог бы ввести это, что мне нужно будет включить его только один раз, и все страницы будут выполнены? К сожалению, я не использую MasterPages.

Ответы [ 6 ]

3 голосов
/ 19 октября 2010

Вам потребуется либо иметь базовую страницу, либо поместить пользовательский элемент управления на каждую страницу, где вам нужен скрипт.

В любом из них вы можете подписаться на событие Init, а затем выполнитьследующее:

protected override void OnInit(EventArgs e)
    {
        var myAnalyticsScript = @"<insert_analytics_script_here>";
        this.Page.ClientScript.RegisterClientScriptBlock(this.GetType(), "analyticScript", myAnalyticsScript);
    }

Если вы выбираете базовую страницу, вы можете контролировать, на каких страницах будет отображаться скрипт, не наследуя его от базовой страницы.Если вы выбираете элемент управления, вы делаете то же самое, не помещая элемент управления на страницу.

3 голосов
/ 19 октября 2010

Создайте базовую страницу, которая наследуется от класса Page, и вставьте ее в заголовок там.Затем все остальные страницы наследуются от базовой страницы: -)

1 голос
/ 19 октября 2010

Еще одно предложение, и да, это большой взлом, но вы могли бы написать HttpModule для автоматической вставки его на страницу после того, как HTML был сгенерирован ASP.NET, но до того, как IIS отправит запрос в браузер.

Примечание. Я бы не стал предлагать этот вариант, но он может быть вашим единственным выбором.

1 голос
/ 19 октября 2010

Создайте базовую страницу для всех страниц и добавьте туда аналитику Google. Затем наследуйте каждую новую страницу от этой.

, например

class PageWithGoogleAnalytics : Page
{
    //some actual code to add analytics
}

class MyCustomPage : PageWithGoogleAnalytics {}
0 голосов
/ 19 октября 2010

Вы можете поместить его на страницу, а затем включить эту страницу везде, где вы хотите проверить. Но главная страница - лучшее для него.

0 голосов
/ 19 октября 2010

--- updated -

Добавьте следующий класс в ваш код приложения


public class WebsitePageBase : System.Web.UI.Page
{
    public const string analyticsCode = "your script goes here..."
    protected void Page_Load(Object sender, e as EventArgs)
    {
       ClientScript.RegisterStartupScript(Me.GetType(),"__analytics_script",analyticsCode )
    }
}


, и когда вы добавляете новую страницу aspx, вы должны наследовать от нового базового класса, напримервы добавляете default.aspx ваш класс должен выглядеть следующим образом:


public partial class _default : WebsitePageBase
{

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...