2013-10-03 26 views
2

我想跟随这个问题的答案:自定义错误不适用于MVC4项目?

How to make custom error pages work in ASP.NET MVC 4

我已经在我的Web.Release.config如下:

<system.web> 
<customErrors mode="On" defaultRedirect="~/Error"> 
    <error redirect="~/Error/NotFound" statusCode="404" /> 
</customErrors> 
</system.web> 

我在释放模式下运行。我已经添加了以下控制器:

public class ErrorController : Controller 
{ 
    public ViewResult Index() 
    { 
     return View("Error"); 
    } 
    public ViewResult NotFound() 
    { 
     Response.StatusCode = 404; //you may want to set this to 200 
     return View("NotFound"); 
    } 
} 

和视图控制器操作:

@model System.Web.Mvc.HandleErrorInfo 
@{ 
    Layout = "../Shared/_Layout.cshtml"; 
    ViewBag.Title = "Error"; 
} 
<div class="list-header clearfix"> 
    <span>Error</span> 
</div> 
<div class="list-sfs-holder"> 
    <div class="alert alert-error"> 
     An unexpected error has occurred. 
    </div> 
</div> 

我可以访问通过手动导航这些页面。如果我导航到一些虚假的URL,但是我得到了带有丑陋诊断信息的标准黄色错误页面。

The resource cannot be found. 

说明:HTTP 404。您正在寻找(或它的 的一个依赖项)可能已被删除的资源,有其名称更改,或者是 暂时不可用。请检查以下URL并确定 拼写正确。

请求的URL:/ SS

我在做什么错?

+0

不要在你的Home控制器中使用HandleErrorAttribute吗? –

+0

@ Andrey.Gubal是的,在所有这些 – RobVious

回答

2

如果自定义错误被启用,在你的榜样,你正在使用的HandleErrorAttribute,在ASP.NET MVC运行时查找的Error.chtml文件中的当前请求的文件夹或共享 views文件夹。在此设置中,defaultRedirect (to GenericErrorPage.htm)和状态 代码重定向URI(“〜/ Error/NotFound”)被忽略

相关问题