可能重复:
How to configure IIS to serve my 404 response with my custom content?
我想在ASP.NET MVC应用程序中提供用户友好的“未找到”页面,同时提供404状态代码。 (基于this answer)
我已经有了如何捕获无效路由的机制,我的ErrorController/Handle404
操作提供了自定义404页面。
我目前的Handle404
实施:
public ActionResult Handle404()
{
Response.StatusCode = 404;
return View("NotFound");
}
目前,IIS将页面作为404 - File or directory not found.
The resource you are looking for might have been removed, had its name changed, or is temporarily unavailable.
(标准IIS页面,而不是我的用户友好内容)提供
如何在仍然提供内容的同时将{404}状态代码包含在Handle404
操作所提供的结果中?
答案 0 :(得分:15)
设置
Response.TrySkipIisCustomErrors = true;
做了这个伎俩。
答案 1 :(得分:0)
你已经做了正确的事情。你可以看看Fiddler来证实这一点。
但是,无法保证浏览器会尊重您的内容。 Wikipedia notes:
但是,Internet Explorer(在Internet Explorer 7之前)不会显示自定义页面,除非它们大于512字节,而是选择显示“友好”错误页面。谷歌浏览器包含类似的功能,如果页面大小不超过512字节,那么404将被谷歌算法生成的替代建议所取代。
为了找到各种浏览器实际选择显示的页面,可能需要对您的视图进行一些试错和按摩以及。