2013-03-14 114 views
1

是否有可能基于URL或路径有一个自定义错误页面?例如,我想要在/ images,/ styles,/ javascript下发生的任何404错误以非常快的速度失败,并且找不到标准404。然而,其他任何东西都应该生成一个用户友好的自定义404(这可能是一个更重的反应,是一个用普通页面布局元素的用户友好页面)。这可能吗?现在,我使用的是这样的:基于ASP.NET MVC路径/ URL的自定义错误页面

<httpErrors errorMode="Custom" existingResponse="Replace"> 
    <remove statusCode="404" subStatusCode="-1" /> 
    <error statusCode="404" path="/notfound" responseMode="ExecuteURL" /> 
</httpErrors> 

但这捕捉所有 404错误。

+0

考虑使用您自己的Application_Error()方法中的错误识别。例如,您可以检查路由 - 如果错误导致的请求url包含“/ images”或“/ styles”或“/ javascript”,则重定向到简单的404页面;在其他情况下,您会将用户重定向到另一个页面。
P.S.看看这个链接:http://www.secretgeek.net/custom_errors_mvc.asp – 2013-03-15 11:43:32

+0

@RobertSkarżycki谢谢。 – Matt 2013-03-15 13:48:05

回答

0

我还没有找到一个基础的.config解决这个问题,但什么我落得这样做是:

  • 我一直在我<httpErrors>配置,重定向到/错误/ NOTFOUND
  • 里面/Error/NotFound,我看我的排除条件,使我的错误页面的“基本”的版本,这是最小的光,避免布局等

    public ViewResult NotFound() 
    { 
        if(testForFastFail){ 
         return View("NotFoundBasic"); 
        } 
    
        return View(); 
    }