MVC 4 HttpNotFound()和404错误

时间:2014-03-21 16:11:18

标签: asp.net-mvc asp.net-mvc-4 http-status-code-404

我有一个控制器,我在其中处理网址的一部分,如果它符合某些条件,我将返回一个视图,但如果不是,我将返回HttpNotFound()

现在我已经设置了一个友好的404页面,如果抛出404,用户将被重定向到该页面,那么为什么HttpNotFound没有重定向到此页面呢?

我希望将404抛出,然后将页面重定向到web.config中设置的错误页面,但它只显示默认的404页面。我已经检查过其他不存在的网址,这些网址都会重定向到正确的错误页面

2 个答案:

答案 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