2009-11-16 8 views
5

우리 사이트에서 ASPX 및 HTML 파일에 대한 정보를 얻었으므로 각 파일의 끝에 작은 JavaScript를 삽입하고 싶습니다. 이 작업과 HttpModule (새로운 것을 배우려고 시도)을 사용하여이 작업을 수행하려는 경우이 작업이 수행됩니다 - 눈부신 문제가 있습니까?ASP.NET : 모든 응답 스트림에 콘텐트 삽입

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

당신은 아마 그렇게 쉬운 방법이 바로, 단지 옛 SSI와 같은 파일을 포함, 당신의 웹 사이트 마스터 페이지 파일에서 정적 사용자 지정 사용자 컨트롤을 사용하여 알아?

HttpModule과 관련하여 HTML이 아닌 내용을 알고 있어야하지만 이미 isAspxOrHtmlFile()을 사용하여이 부분을 제거한 것처럼 보입니다. 나 한테 잘됐다.

+1

네, 여기에 더 좋은 방법이있을 것입니다. 단지 이것을 HttpModules에 익숙해지기 위해 예제로 사용하고 있습니다. 감사 :) – JamesBrownIsDead