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