将Google Analytics代码放在ASP.NET Web应用程序中的位置

时间:2010-10-19 14:00:26

标签: asp.net google-analytics

我想在我的ASP.NET网络应用程序中找到一个放置Google Analytics代码的地方。我想将它放在某处,而不必将代码复制并粘贴到多个文件中。有什么地方我可以注入它,我只需要包含它一次,所有页面都会受到影响吗?不幸的是,我没有使用MasterPages。

6 个答案:

答案 0 :(得分:3)

创建一个继承自Page类的基页,并将其插入到头部。然后让所有其他页面从基页继承: - )

答案 1 :(得分:3)

您需要拥有一个基页,或者在需要该脚本的每个页面上放置一个自定义控件。

在其中任何一个中,您都可以订阅Init事件,然后执行以下操作:

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

如果选择基页,则可以通过不从基页继承来控制脚本显示的页面。如果选择一个控件,则不要将控件放在页面上。

答案 2 :(得分:1)

为所有网页创建基页,并在那里添加Google Analytics。然后从这个页面继承每个新页面。

e.g。

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

class MyCustomPage : PageWithGoogleAnalytics {}

答案 3 :(得分:1)

另一个建议,是的,这是一个大规模的黑客,但你可以编写一个HttpModule,在ASP.NET生成HTML之后但在IIS将请求发送到浏览器之前自动将其注入页面。

注意:我真的不建议这个选项,但它可能是你唯一的选择。

答案 4 :(得分:0)

您可以将其放入页面,然后将此页面包含在您想要检查的任何位置。但是masterpage是最好的。

答案 5 :(得分:-3)

---更新 -

在app_code中添加以下课程


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
{

}