代码之家  ›  专栏  ›  技术社区  ›  Marek

ASP.NET MVC:如何在返回状态代码404时提供内容?[复制品]

  •  19
  • Marek  · 技术社区  · 16 年前

    可能重复:
    How to configure IIS to serve my 404 response with my custom content?

    我希望在我的ASP.NET MVC应用程序中提供一个用户友好的“找不到”页面,同时提供404状态代码。基于 this answer )

    我已经有了捕获无效路由的机制,自定义404页由我的 ErrorController/Handle404 行动。

    我目前执行的 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状态代码包含在 把手404 在提供内容的同时采取行动?

    2 回复  |  直到 14 年前
        1
  •  15
  •   Nightfirecat peSHIr    14 年前

    设置

     Response.TrySkipIisCustomErrors = true; 
    

    成功了。

        2
  •  0
  •   Craig Stuntz    16 年前

    你已经做了正确的事情。你可以看看小提琴手来证实这一点。

    但是,不能保证浏览器会尊重您的内容。 Wikipedia notes :

    但是,Internet Explorer(在Internet Explorer 7之前)将不会显示自定义页,除非它们大于512字节,而是选择显示“友好”错误页。谷歌Chrome也包含类似的功能,如果页面大小小于512字节,404将被谷歌算法生成的替代建议取代。

    可能需要对视图进行一些尝试和错误处理,以便找到各种浏览器实际选择显示的页面。