0

別のページへのリダイレクトを制御したり、特定の処理エラーで別のビューを返すことができます。 404、403、418のステータスを持つカスタムページを作成できますが、ページが表示されますが、500を返そうとするとデフォルトのページで上書きされます。私は通常のソリューションを試しました。 TrySkipIisCustomErrorsを使用してIISが500エラーを傍受する私はfilter.csを持っておらず、application_Start()にフィルタを登録していません。私はメソッドから[HandleError]を追加したり削除したりしてみましたが、違いはありません。MVC5の返品状況500カスタムページ、通常の解決策を試しました

[NonAction] 
    [HandleError] 
    private ActionResult error(Exception e) 
    { 
     Response.StatusCode = 500; 
     Response.StatusDescription = "Internal server error: " + e.Message; 
     Response.TrySkipIisCustomErrors = true; 

     ErrorModel errorModel = new ErrorModel(); 
     errorModel.error = e.Message; 
     return View(viewName: "error", model: errorModel); 
    } 

これは、エラーがリダイレクトされ、表示されるビューを返すメソッドです。最初の行を他のStatusCodesに変更できますが、正常に動作しますが、500はありません。

答えて

0

それは、カミソリで奇妙な虫だった。 RenderBody()は、ドキュメント内に何もない場合は、<body>というタグを追加します。ステータスヘッダに500を返さない限りは明らかです。その後、<body>タグは追加されず、HTMLは私の問題を引き起こしていた不正な形式を返します。

関連する問題