5

サイトには何百もの 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();
}
4

1 に答える 1

4

古い SSI インクルード ファイルと同じように、Web サイトのマスター ページ ファイルで静的なカスタム ユーザー コントロールを使用するのが簡単な方法だと思います。

HttpModule については、HTML ではないコンテンツに注意する必要がありますが、 を使用して既にこれを削除しているようですisAspxOrHtmlFile()。私には問題ないようです。

于 2009-11-16T18:03:48.600 に答える