我有一个控制器,我在其中处理网址的一部分,如果它符合某些条件,我将返回一个视图,但如果不是,我将返回HttpNotFound()
。
现在我已经设置了一个友好的404页面,如果抛出404,用户将被重定向到该页面,那么为什么HttpNotFound没有重定向到此页面呢?
我希望将404抛出,然后将页面重定向到web.config中设置的错误页面,但它只显示默认的404页面。我已经检查过其他不存在的网址,这些网址都会重定向到正确的错误页面
答案 0 :(得分:6)
事实证明,你的意思是抛出异常:
throw new HttpException(404, "Page Not Found");
这似乎处理404然后将您重定向到正确的页面而不仅仅是IIS 404页面
答案 1 :(得分:2)
只是猜猜......
您未被重定向到友好404页面的原因是因为IIS / MVC能够处理请求。然后,在处理请求时,您确定需要将404状态代码返回给客户端。
就个人而言,我更喜欢返回404状态代码和我的PageNotFound视图,类似于StackOverflow使用的这种方法:https://stackoverflow.com/a/499907/84395