2012-12-20 136 views
3

我有在asp.net mvc项目。而且有问题,我不知道如何解决: 我在web.config中的错误处理增加,这是确定的,但它的回报asp.net mvc 404代码错误

HTTP/1.1 302 Found 
Content-Length: 157 
Location: /Error404.html?aspxerrorpath=/fghdhdfghg 

这是不对的,我需要的HTTP/1.1 404未找到。我在

that site

你知道如何设置错误代码为我error404.html网页测试?我已经尝试了两种硬编码html页面& MVC Action。

+0

您是否尝试禁用自定义错误处理? – jrummell

+0

但我需要该页面的自定义设计 – SiarheiK

回答

2

您可以设置Response.StatusCode = 404或者您可以从控制器返回HttpNotFoundResult

+0

该方法是否允许使用该页面的自定义设计?我在测试HTTP/1.1的404找不到,但有默认的asp.net设计[链接](http://puu.sh/1Dv4n) – SiarheiK

+0

是的,如果你在返回视图之前在你的控制器中设置StatusCode: – MarkG

+0

thancks 。但它也应该设置为'Response.TrySkipIisCustomErrors = true;'现在可以工作。 – SiarheiK

0

您正在获取302(对象移动),因为您在配置中明确请求了这一点,通过告诉它在发生404错误时使用备用页面。你的另一种选择是让Web服务器发回404错误,但你不会有机会发送HTML内容(大概是你重定向的全部理由)。

0

302不是错误。它是“暂时移动”的HTTP状态码,它告诉Web浏览器/搜索引擎它应该继续使用它首先使用的URL。

使用mod_rewrite,PHP的header()和其他URL改变方案时,302重定向很常见。是在您的Web服务器启用缓存..?