2010-10-19 43 views
3

我想找到一个地方将我的Google Analytics代码放入ASP.NET Web应用程序中。我想将它放在一个地方,而不必将代码复制并粘贴到多个文件中。有没有我可以注入的地方,我只需要将它包含一次,所有页面都会生效?不幸的是我没有使用MasterPages。将Google Analytics(分析)代码放置在ASP.NET Web应用程序中的位置

+0

您是否有很好的理由不能使用母版页? – 2010-10-19 14:53:08

+0

是的。我无法引入那么多的测试影响。 – 2010-10-19 15:02:38

回答

3

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

在这类原因,你可以订阅Init事件,然后执行以下操作:

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

如果你选择一个基本页面,您可以控制哪些页面通过不继承出现在脚本基本页面。如果你选择一个控件,你不用将控件放在页面上。

+0

感谢此:)有一件事:使用RegisterStartupScript在关闭标记之前放置脚本。 – IrishChieftain 2011-05-07 14:24:46

-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 
{ 

} 
+0

你有没有读到最后的问题? – Restuta 2010-10-19 14:03:58

0

你可以把它变成一个页面,然后无处不在,你想成为检查包括此页。但masterpage是最好的。

3

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

1

为所有页面创建基页,并在其中添加Google分析。然后从这个继承每个新页面。

例如

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

class MyCustomPage : PageWithGoogleAnalytics {} 
1

另一项建议,是的,这是一个庞大的黑客,但你可以写一个HTTP模块的HTML已经由ASP.NET生成后,将自动注入到该页面,但之前IIS将请求发送到该浏览器。

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

相关问题