2017-03-31 4 views
0

を500ページを挿入するようにASP.NETを引き起こし、私はこのようになりますた.ascxでいくつかのコードを持って:あなたは(0による除算を)期待通りインラインコードは、現在のページ内

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

は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

関連する問題