2011-07-27 3 views
4

제목이 명확한 지 아닌지는 잘 모르겠지만 내가하려는 일에 대해 설명하겠습니다.자바 스크립트 wtih asp.net 페이지를 제공하는 방법?

C#으로 asp.net으로 작성된 두 개의 웹 응용 프로그램이 있습니다.

앱 A의 HTML 형식은 다음과 같습니다.

<script type="text/javascript" id="blah" src="http://somServer/AppB/page.aspx?p=q"></script> 

위의 요청을 받아서 위의 스크립트 태그에 동적으로 자바 스크립트를 삽입해야합니다. App B의 page.aspx에 다음 코드가 있지만 작동하지 않습니다. App B가 HTML이 아닌 순수한 자바 스크립트를 반환해야합니다.

namespace AppB 
{ 
    public partial class Default : System.Web.UI.Page 
    { 
     if(!Page.IsPostBack) 
     { 
     Response.Clear(); 
     Response.ClearContent(); 
     REsponse.ClearHeader(); 
     Response.AddHeader("content-type", "text/javascript"); 
     var p = Request.Query["p"]; 
     if(!string.IsNullOrEmpty(p)) 
     { 
      this.Page.ClientScript.RegisterClientScriptBlock(typeof(Page), "test", "alert('test');", false"); 
     } 
    } 
} 
+0

어떤 종류의 오류가 발생합니까? – Infotekka

+1

다른 .aspx 페이지를 왜 호출하는 중입니까? 그것은 특정한 요구 사항입니까? – TheGeekYouNeed

+0

말할 때 작동하지 않습니다 ... 리소스가로드되었지만 잘못된 콘텐츠 형식이 있습니까? FireBug에서 요청/응답 헤더의 screengrab를 첨부 할 수 있습니까? – madcapnmckay

답변

3

당신은 HTML이 아닌 콘텐츠를 제공하기 위해 (http://support.microsoft.com/kb/308001 참조) HttpHandler 오히려 Page보다를 사용할 수도 있습니다. 이렇게하면 다음과 같이 쓸 수 있습니다.

public class JavascriptHandler : IHttpHandler 
{ 
    public void ProcessRequest(HttpContext context) 
    { 
     context.Response.ContentType = "text/javascript"; 
     string p = context.Request.QueryString["p"]; 
     string script = String.Format("alert('test - p={0}');", p); 
     context.Response.Write(script); 
    } 
} 
+0

클래스 라이브러리 프로젝트 대신 웹 응용 프로그램 프로젝트에서이를 구현하는 방법이 있습니까? 아마도 페이지 클래스가 이미 파이프 아래쪽에 있기 때문에 아마 추측 할 수 있습니다. –

+1

@myself, 대답은 '예'입니다. Generic Handler (ashx) 페이지를 추가 할 수 있습니다. –

관련 문제