2009-08-26 5 views
0

문자열 변수에 저장된 HTML을 동적으로 생성하고 있습니다.
이 HTML로 만든 새 페이지로 새 창을 열고 싶습니다.
이것은 너무 단순 해 보이지만 솔루션을 찾을 수 없습니다.

ASP.NET 3.5 및 VS2008을 사용하고 있습니다.

감사합니다.
폴.ASP.NET 동적으로 페이지를 만듭니다

답변

1

HTTP 처리기를 만들어 web.config 파일에 등록하여 동적 콘텐츠가 필요한 다양한 요청 경로를 처리하고 HttpContext.Current를 기반으로 표시 할 콘텐츠를 검색하는 것이 가장 좋습니다. Request.Path.

이 방법 당신은 어떤 파일을 저장할 필요가 없습니다, 당신은 출력 스트림에 문자열 변수에서 쓰기

+0

이 아이디어를 상세히 설명해 주실 수 있습니까? – ThatBloke

+0

System.Web.Handlers.IHttpHandler (또는 비동기 처리기를 만들려면 System.Web.Handlers.IHttpAsyncHandler)를 구현하는 클래스를 만듭니다. ProcessRequest (또는 비동기의 경우 BeginProcessRequest 및 EndProcessRequest)를 구현하면 HttpContext가 인수로 전달됩니다. QueryString/Form 또는 사용자가 가지고있는 다른 입력을 사용하여 생성 된 HTML 조각을 보내야합니다. 해당 HTML을 생성 한 다음 Response.Write (str)를 사용하여 쓰기 – LorenVS

0

당신은 당신의 새 페이지에서 이것을 시도 할 수 있습니다 :

보호 하위하여 Page_Load (ByVal의 보낸 사람 객체로, 경우 System.EventArgs으로 ByVal의 e)이

HttpContext.Current.Response.Clear() HttpContext.Current.Response.ClearHeaders() HttpContext.Current.Response.ClearContent()

Me.Load를 처리 0

HttpContext.Current.Response.ContentType = "text/html과 HttpContext.Current.Response.Write (YourString) HttpContext.Current.Response.Flush() HttpContext.Current.Response.End()

종료 Sub

+0

이 솔루션은 본질적으로 동일한 페이지와 동일한 URL을 사용하여 완전히 다른 두 가지 내용 (주 출력 또는 문자열 변수의 출력)을 생성합니다. . 동적 인 콘텐츠를 별도의 위치로 푸시 할 수 있으면 좋을 것입니다. – LorenVS

0

쿼리 문자열을 사용하는 .ashx 페이지를 만듭니다 (예 : pagebuilder.ashx? pageid = 12345

이 페이지의 목적은 pageid 쿼리 문자열을 기반으로 세션 ID에서 간단히 조회하는 것입니다. 예 :

변수에 HTML을 생성 페이지
var page = Session["PAGE_" + QueryString["pageid"]].ToString(); 
Response.Write(page); 

, 후 Page_Init

에서 세션 변수를 저장

'[ "PAGE_12345"] = generatedHtml;

그런 다음 Page_Load에서 url pagebuilder.ashx? pageid = 12345로 여는 javascript를 생성하십시오.

그게 전부입니다. 새로 생성 된 html을 다른 창에서 열 수 있습니다.

관련 문제