Yanor.net/
Wiki
Blog
GitHub
Sandbox
開始行:
* HandleErrorアトリビュート [#b766827c]
** HandleErrorアトリビュートとは? [#a56ca50e]
- HandleErrorアトリビュートはコントローラー内のアクション...
- HandleErrorアトリビュートはデフォルトでGlobalFilterに追...
-- MVC3: Glaobal.asax
-- MVC4: App_Statr/FilterConfig.cs: filters.Add(new Hand...
- HandleErrorは、Web.configでcustomErrors mode="On" の場...
*** 補足:ExceptionFilterアトリビュートとHandleErrorアト...
- コントローラー内で例外した例外はException filterアトリ...
- デフォルトのException filterがHandleError。
** HandleErrorフィルターの使用例 [#qdf04099]
*** コントローラー [#z4334a70]
[HandleError]
public ActionResult Index()
{
throw new Exception("HandleError Exception");
return View();
}
*** Web.config [#uc1a201a]
<system.web
<customErrors mode="On"></customErrors>
</system.web
*** Views\Shared\Error.cshtml [#b379c161]
@model System.Web.Mvc.HandleErrorInfo
<h1 class="text-danger">エラー</h1>
<h2 class="text-danger">要求の処理中にエラーが発生しまし...
<dl>
<dt>Controller</dt>
<dd>@Model.ControllerName </dd>
<dt>Action</dt>
<dd>@Model.ActionName</dd>
<dt>例外</dt>
<dd>
<pre>@Model.Exception</pre>
</dd>
</dl>
** エラーページを表示せずにエラーURLへHTTPリダイレクトさ...
*** Web.config [#c69e457e]
<customErrors mode="On" defaultRedirect="~/Error/Index" ...
<error statusCode="403" redirect="~/Error/Forbidden" /
</customErrors>
*** エラーコントローラー Controllers\ErrorController.cs [...
public class ErrorController : BaseController
{
public ActionResult Index()
{
return View();
}
public ActionResult Http403()
{
Response.StatusCode = 403;
return Content("Forbidden:403", "text/plain");
}
}
*** エラーテンプレート Views\Error\Index.cshtml [#hadb9374]
(略)
** HandleErrorの制約 [#sec836e9]
+ Not support to log the exceptions
+ Doesn't catch HTTP exceptions other than 500
+ Doesn't catch exceptions that are raised outside contro...
+ Returns error view even for exceptions raised in AJAX c...
** 参考 [#m27796a8]
- http://prideparrot.com/blog/archive/2012/5/exception_ha...
- http://www.dotnetexpertguide.com/2013/05/aspnet-mvc-han...
- http://stackoverflow.com/questions/183316/asp-net-mvc-h...
終了行:
* HandleErrorアトリビュート [#b766827c]
** HandleErrorアトリビュートとは? [#a56ca50e]
- HandleErrorアトリビュートはコントローラー内のアクション...
- HandleErrorアトリビュートはデフォルトでGlobalFilterに追...
-- MVC3: Glaobal.asax
-- MVC4: App_Statr/FilterConfig.cs: filters.Add(new Hand...
- HandleErrorは、Web.configでcustomErrors mode="On" の場...
*** 補足:ExceptionFilterアトリビュートとHandleErrorアト...
- コントローラー内で例外した例外はException filterアトリ...
- デフォルトのException filterがHandleError。
** HandleErrorフィルターの使用例 [#qdf04099]
*** コントローラー [#z4334a70]
[HandleError]
public ActionResult Index()
{
throw new Exception("HandleError Exception");
return View();
}
*** Web.config [#uc1a201a]
<system.web
<customErrors mode="On"></customErrors>
</system.web
*** Views\Shared\Error.cshtml [#b379c161]
@model System.Web.Mvc.HandleErrorInfo
<h1 class="text-danger">エラー</h1>
<h2 class="text-danger">要求の処理中にエラーが発生しまし...
<dl>
<dt>Controller</dt>
<dd>@Model.ControllerName </dd>
<dt>Action</dt>
<dd>@Model.ActionName</dd>
<dt>例外</dt>
<dd>
<pre>@Model.Exception</pre>
</dd>
</dl>
** エラーページを表示せずにエラーURLへHTTPリダイレクトさ...
*** Web.config [#c69e457e]
<customErrors mode="On" defaultRedirect="~/Error/Index" ...
<error statusCode="403" redirect="~/Error/Forbidden" /
</customErrors>
*** エラーコントローラー Controllers\ErrorController.cs [...
public class ErrorController : BaseController
{
public ActionResult Index()
{
return View();
}
public ActionResult Http403()
{
Response.StatusCode = 403;
return Content("Forbidden:403", "text/plain");
}
}
*** エラーテンプレート Views\Error\Index.cshtml [#hadb9374]
(略)
** HandleErrorの制約 [#sec836e9]
+ Not support to log the exceptions
+ Doesn't catch HTTP exceptions other than 500
+ Doesn't catch exceptions that are raised outside contro...
+ Returns error view even for exceptions raised in AJAX c...
** 参考 [#m27796a8]
- http://prideparrot.com/blog/archive/2012/5/exception_ha...
- http://www.dotnetexpertguide.com/2013/05/aspnet-mvc-han...
- http://stackoverflow.com/questions/183316/asp-net-mvc-h...
ページ名: