有人可以解释为什么我在访问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>
答案 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>