Eri*_*son 5 c# error-handling asp.net-mvc razor asp.net-mvc-4
背景:在面向公众的ASP.NET MVC4应用程序中,有时我会收到对错误URL的入站请求.引荐来自外部所以我的应用程序是我无法控制的(我没有在我的应用程序中生成错误的URL).因此MVC正确引发异常并且用户看到自定义错误页面.global.asax被编码为电子邮件错误给我.
问题.虽然URL很糟糕,但我收到的错误是意外的.
例如: - 用户导航(从外部URL)到/ Blog/View - Blog控制器没有View操作 - 向用户显示Error500自定义错误网页 - 我通过电子邮件收到的错误是:
未找到视图"错误"或其主控,或者没有视图引擎支持搜索的位置.以下地点搜索:〜/查看/博客/ Error.aspx〜/查看/博客/ Error.ascx〜/查看/共享/ Error.aspx〜/查看/共享/ Error.ascx〜/查看/博客/错误. cshtml~/Views/Blog/Error.vbhtml~/Views/Shared/Error.cshtml~/Views/Shared/Error.vbhtml
我不明白为什么ASP.NET MVC4正在寻找名为"Error"的视图,以及为什么MVC不会在web.config中搜索指定的视图(Error500).以下是适用的源文件:
Web.Config:
<customErrors mode="RemoteOnly" defaultRedirect="~/Error/Error500">
<error statusCode="404" redirect="~/Error/Error404" />
</customErrors>
Run Code Online (Sandbox Code Playgroud)
ErrorController文件:
public class ErrorController : Controller
{
public ActionResult Error500()
{
return View();
}
public ActionResult Error404()
{
return View();
}
}
Run Code Online (Sandbox Code Playgroud)
Error404.cshtml文件(位于/ Views/Error文件夹中):
@{
ViewBag.Title = "Oops...";
Layout = "~/Views/Shared/_Layout.cshtml";
}
<h1>That's interesting</h1>
<p>The page you were looking for could not be found.</p>
Run Code Online (Sandbox Code Playgroud)
Error500.cshtml文件(位于/ Views/Error文件夹中):
@{
ViewBag.Title = "Oops...";
Layout = "~/Views/Shared/_Layout.cshtml";
}
<h1>We're sorry about that</h1>
<p>Something unexpected just happened. Our IT staff has been notified...time to code a hot-fix!</p>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4086 次 |
| 最近记录: |