私は多くの記事といくつかの記事(ここではstackoverflowを含む)を読んだことがありますが、間違っていることはわかりません。カスタムHandleErrorAttributeでエラーが発生しない
ここに私のコード:
Global.asax.cs
public static void RegisterGlobalFilters(GlobalFilterCollection filters)
{
filters.Add(new HandleErrorAttribute());
}
ErrorControler.cs
public class ErrorController : Controller
{
public ActionResult Error404()
{
return View();
}
public ActionResult Error500()
{
return View();
}
}
のWeb.config
サーバーエラー:私はパスにアクセスしようとすると
/MyController
次のメッセージが表示されます@model System.Web.Mvc.HandleErrorInfo @{ ViewBag.Title = "Erro"; } <h2>@ViewBag.Title</h2> <div id="error-info"> <p>Ocorreu um erro inexperado na página <a class="error-url" href="@Response["aspxerrorpath"]" title="Origem do erro">@Response["aspxerrorpath"]</a></p> <p>Se o erro persistir, por-favor, entre em contato com os administradores do site.</p> <div class="error-details"> <p>@Model.Exception.Message</p> </div> </div>
<customErrors mode="On" defaultRedirect="~/Error/Error500"> <error statusCode="404" redirect="~/Error/Error404"/> </customErrors>
MyController.cs
public ActionResult Index() { using (var db = new DataContext()) { int a = 2, b = 0; var r = a/b; return View(r); } }
Error500.cshtml '/'のAppl ication。
リソースが見つかりません。
概要HTTP 404。探しているリソース(またはその 依存関係の1つ)が削除されたか、名前が変更されたか、または が一時的に利用できませんでした。次のURLを参照し、 のスペルが正しいことを確認してください。
要求されたURL:/エラー/ Error500
私はHTTPステータスコードは、web.configファイルには知らされていない場合は任意のコントローラ上の誤りが、それはデフォルトのビューにリダイレクトする際にそれが起こるたいError500
たとえば、this articleでは、DbExceptionエラーを処理しますが、エラーの種類を処理したいと考えています。
タイプ404(ページが見つかりません)のエラーは完全に機能します。あなたはこれがあなたのGlobal.asax
から次の行を/削除コメントが起こるしたい場合は、ユーザーがページError404.cshtml
私は 'filters.Add(new HandleErrorAttribute()) '行にコメントしましたが、それでも同じ動作を続けました。 このリンクは、トピックの調査中に見つけたリンクの1つですが、 'Application_Error'を使用したくありません。 私のアプリケーションのエラーを処理するのに 'HandleErrorAttribute'を使います。 – ridermansb
@Riderman de Sousa Barbosa、新しいASP.NET MVC 3プロジェクトで説明した手順を正確に行い、答えに示されているようにカスタムエラー行を削除し、web.configに表示された内容を追加し、Indexアクションを変更しましたあなたが見せたものと一致するHomeControllerのもので、それは私にとって完璧に機能しました。 –
私はエラーを発見しました! 何らかの理由で、リンク上でエラーが発生しました。 '@Response [" aspxerrorpath "]'私はこの行にコメントしました。 エラーログに次のメッセージが記録されているのを見て、これを見つけました。 []でインデックス付けを 'System.Web.HttpResponseBase'の式に適用できません – ridermansb