首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何显示所有http错误的动态自定义错误页面?

如何显示所有http错误的动态自定义错误页面?
EN

Stack Overflow用户
提问于 2019-06-02 16:32:13
回答 2查看 1.4K关注 0票数 0

我需要有一个自定义的错误页面来处理所有的http错误。当发生http错误时,page应该显示自定义页面,并且它的内容必须基于http错误状态码动态生成。当一个特定的http错误发生时,我成功地显示了一个自定义的html。例如404。但是有两个问题。1.我需要重定向到一个.cshtml,这样我就可以对响应进行一些处理,并根据http错误状态码创建内容。2.我需要一个方法来将所有错误重定向到这个.cshtml文件。

我已经阅读了文档,并在SO中搜索了类似的问题,所有这些都遵循了,但没有任何进展。

目前我在web.config中有以下几行代码:

代码语言:javascript
复制
    <httpErrors errorMode="Custom" defaultResponseMode="File" defaultPath="CustomError.htm">
      <clear />
      <error path="CustomError.htm" responseMode="File" statusCode="403"/>
    </httpErrors>

这将显示位于文件web.config的相同路径下的文件CustomError.htm的内容。但当我阅读文档时,我希望这个配置可以工作:

代码语言:javascript
复制
    <httpErrors errorMode="Custom" defaultResponseMode="File" defaultPath="CustomError.htm">
      <clear />
    </httpErrors>

但是它没有显示CustomError.htm文件的内容,而是显示了一个空白页面,其中包含以下句子:You do not have permission to view this directory or page.甚至用于处理单个httpError,我在使用.cshtml时遇到了问题,我不得不使用html文件。我实际上有以下cshtml文件:Views/Error/PageNotFound.cshtml,当我这样做时,它有一个控制器和一个名为PageNotFound的actionResult方法:

代码语言:javascript
复制
    <httpErrors errorMode="Custom" defaultResponseMode="File" defaultPath="CustomError.htm">
      <clear />
      <error path="~/Error/PageNotFound" responseMode="ExecuteURL" statusCode="404"/>
    </httpErrors>

然后,浏览器抛出not found错误。

当我将responseMode更改为Redirect时,路径会一遍又一遍地附加到现有的url中,并且不起作用。正如你在标签中看到的,我在Windows10上使用的是asp.net mvc和iis10,有什么帮助吗?

EN

回答 2

Stack Overflow用户

发布于 2019-06-03 00:23:24

我不能100%确定我是否正确地低估了你,但是尝试这段代码用于我的自定义错误,我100%确定它是有效的

代码语言:javascript
复制
<customErrors mode="Off" defaultRedirect="/Error/Default">
  <error statusCode="404" redirect="/Error/E404" />
  <error statusCode="500" redirect="/Error/E500" />
  <error statusCode="403" redirect="/Error/E403" />
</customErrors>

您可以在继续操作的同时添加更多状态代码

票数 1
EN

Stack Overflow用户

发布于 2019-06-03 13:21:31

@arm,请浏览以下链接

https://www.codeproject.com/Articles/850062/Exception-handling-in-ASP-NET-MVC-methods-explaine

我希望,重写“OnException”方法可以帮助您解决您的问题。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56413438

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档