2017-03-31 14 views
0

나는이처럼 보이는의 .ascx에서 일부 코드가 있습니다인라인 코드는 현재 페이지 내에서 500 페이지를 삽입하는 ASP.NET의 원인

<% 
int a = 0; 
int b = 5; 
int c = b/a; 
%> 

(0으로 나누기) 500 사용자가 예상하는대로 오류가 발생을 .

에 CustomErrors 내가 내가 칠 노력하고있어 페이지의 렌더링 엉망이

<customErrors mode="On" redirectMode="ResponseRewrite"> 
     <error statusCode="500" redirect="/500.aspx" /> 
    </customErrors> 

것 같습니다. 원본을 보면 500 페이지가 뒤따른 다음 일반 페이지의 절반을 볼 수 있습니다.

<div class="mapTextOverlay" style="width:448px;padding-left:232.96px;"> 

    [main page abruptly ends here and the 500 page starts] 

    <!DOCTYPE html> 

    <html xmlns="http://www.w3.org/1999/xhtml"> 
    <head id="Head"><title> 
     500 
    </title> 

    [etc.] 

따라서 서버 렌더링이 페이지 렌더링 중간에 발생합니다.

500 오류가 발생할 경우 부분 페이지 렌더링이 발생하지 않도록하려면 어떻게해야합니까?

  • 이는 인라인 코드에서만 발생하며 오류가 코드 숨김이면 오류가 정상적으로 표시됩니다. 코드에서
  • 아무것도에서 Response.Flush를 호출하지 않습니다()
  • Response.BufferOutput 사실이다
  • 코드는 Response.Filter을 설정하는 것입니다,하지만 난 그 의견을 시도하고 그것에게
+0

이것은 정상적인 동작이 아닙니다. * 모든 응답이 클라이언트에 전송되기 전에 전체 페이지가 실행됩니다. 그래서 당신에게 부분적인 응답을 보내고 다른 응답을 보낼 수는 없습니다. AJAX를 통해 다른 페이지에로드하고 있습니까? 귀하의 질문에 [MCVE] (http://stackoverflow.com/help/mcve)가 누락 된 것 같습니다. – mason

답변

0
가 해결되지 않았다

나는 아직도 이런 일이 일어나는 이유를 모르지만, 수정 사항은 매우 간단합니다.

012 페이지의 Page_Load()Response.Clear();을 넣으십시오.

+0

인라인 코드의 경우 응답은 인라인 코드를 누르기 전에 페이지 또는 컨트롤에서 생성 된 HTML로 이미 구성되어 있다고 생각합니다. 따라서 사용자 정의 오류 페이지가 호출되면 기존 응답에 추가됩니다. – Otis