2011-11-15 3 views
0

다른 페이지로 리디렉션하는 것이 유일한 목적 인 웹 양식이 있습니다. 나는 정상적인 aspx 페이지로 생성하고 난에서 .aspx 파일에 모든 것을 삭제하고 아래와 같이 바로 첫 번째 라인을 유지 - 심지어 doctype이와 HTML 태그를 지금 사라 :Response.Redirect 및 HTML 콘텐츠

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Redirect.aspx.cs" Inherits="Web.Redirect" %> 

가 나는 또한 삭제. designer.cs 파일에 아무것도 포함되어 있지 않습니다. 그것은 작동하지만, 내가 한 일이 옳은지 궁금해. 이 경우 Web Form에서 모든 HTML 컨텐트를 제거 할 때 염려가 있습니까?

답변

2

아무 것도 없습니다. 당신이 한 일은 완벽하게 받아 들일 수 있습니다.

그러나 페이지의 유일한 목적이 리디렉션 인 경우 정확히 동일한 방식으로 사용할 수 있고 ASPX 페이지만큼 많은 오버 헤드가 없으므로 Handler/ASHX 파일을 사용합니다.

여기에 description and example of how to use one입니다.

1

Response.Redirect(url)을 수행하면 리디렉션 헤더가 추가되고 요청이 종료됩니다. 즉, ASPX 페이지의 내용이 클라이언트에 출력되지 않습니다. Response.Redirect (url) 이후의 내용은 페이지에 출력되지 않습니다. 당신도 그랬듯이 그것을 삭제할 수 있습니다.

Response.Redirect(url, false)을 입력하면 응답이 종료되지 않고 페이지가 클라이언트에 출력됩니다. 그러나 클라이언트는 리다이렉트되어 있기 때문에 결코 그것을 볼 수 없습니다.

+1

리다이렉트 헤더를받은 후에 브라우저가 실제로 리다이렉트하지만 목적지 페이지에 시간이 걸리면 이전에 제공 한 html을 볼 수 있습니다. 따라서 사용자에게 그가 다른 위치로 리디렉션 중임을 알리는 html 콘텐츠를 제공하는 것이 좋습니다 (위치에 대한 링크 제공)! – VinayC

+0

감사합니다. 나는 MSDN에서'Response.Redirect (url, false)'를 권장하며, HTML 콘텐츠가 없다는 점을 감안할 때 클라이언트는'Response.Redirect (url)'을 호출했을 때와 같은 결과를 볼 것이라고 상상한다. – Clafou