ASP.NET:将内容注入所有Response流

我们在我们的网站上有ASPX和
HTML文件的大趋势,并希望在每个文件的末尾注入一个小的
JavaScript.如果我想使用和HttpModule(尝试学习新东西)这样做,这会有 – 有任何明显的问题吗?

public void Init(HttpApplication context)
{
    context.BeginRequest += new EventHandler(context_BeginRequest);
}

void context_BeginRequest(object sender,EventArgs e)
{
    var context = HttpContext.Current;

    if (!isAspxOrHtmlFile(context.Request.Path)
    {
        return;
    }

    var javascript = ...

    using (var writer = new StringWriter())
    {
        context.Server.Execute(context.Request.Path,writer);
        context.Response.ContentType = "text/html";
        context.Response.Write(writer.GetStringBuilder().ToString() + javascript);
    }

    context.Response.End();
}

解决方法

您可能知道这样做的简单方法是在您的网站母版页文件中使用静态自定义用户控件,就像旧的SSI包含文件一样,对吧?

关于HttpModule,你应该知道不是HTML的内容,但似乎你已经通过使用isAspxOrHtmlFile()删除了它.对我来说似乎很好.

dawei

【声明】:丽水站长网内容转载自互联网,其相关言论仅代表作者个人观点绝非权威,不代表本站立场。如您发现内容存在版权问题,请提交相关链接至邮箱:bqsm@foxmail.com,我们将及时予以处理。