每次在MVC中都没有处理404页面

时间:2017-05-05 11:42:53

标签: c# asp.net asp.net-mvc

有人可以解释为什么我在访问http://localhost:port/controler/blabla/blabla时使用Windows身份验证的MVC中的自定义错误页面工作,但是当我尝试访问http://localhost:port/controler/action/blabla/blabla时,它不会调用我的自定义404页面但是显示一个空白窗口。

例如,当我拨打http://localhost:port/Home/blabla/blabla时,我的自定义页面会被调用;但是当我调用http://localhost:port/Home/Index/blabla/blabla(添加了操作的相同网址)时,它会显示空白页面。这是我的配置吗?

我的配置:

 <customErrors mode="On" defaultRedirect="~/UnAuthorized/ErrorDefault/?error=1">
  <error statusCode="404" redirect="~/UnAuthorized/ErrorResourceNotFound/?error=1"/>
  <error statusCode="403" redirect="~/UnAuthorized/ErrorResourceNotFound/?error=1"/>
  <error statusCode="500" redirect="~/UnAuthorized/ErrorDefault/?error=1"/>
</customErrors>

 <httpErrors errorMode="Custom">
  <remove statusCode="404" subStatusCode="-1"/>
  <remove statusCode="403" subStatusCode="-1"/>
  <remove statusCode="500" subStatusCode="-1"/>
  <error statusCode="404" subStatusCode="-1" prefixLanguageFilePath="" path="~/UnAuthorized/ErrorResourceNotFound/?error=1" responseMode="ExecuteURL" />
  <error statusCode="403" subStatusCode="-1" path="~/UnAuthorized/ErrorResourceNotFound/?error=1" responseMode="ExecuteURL" />
  <error statusCode="500" subStatusCode="-1" path="~/UnAuthorized/TestPage" responseMode="ExecuteURL" />
</httpErrors>

1 个答案:

答案 0 :(得分:0)

在自定义错误代码中使用重定向模式作为“ResponseRedirect”,如

<customErrors mode="On" defaultRedirect="~/UnAuthorized/ErrorDefault/?error=1" redirectMode="ResponseRedirect">
    <error statusCode="404" redirect="~/UnAuthorized/ErrorResourceNotFound/?error=1" />
<error statusCode="403" redirect="~/UnAuthorized/ErrorResourceNotFound/?error=1"/>
  <error statusCode="500" redirect="~/UnAuthorized/ErrorDefault/?error=1"/>
 </customErrors>