【问题标题】:Best way for customerrors asp.net MVC imagescustomerrors asp.net MVC 图像的最佳方法
【发布时间】:2011-06-04 10:12:24
【问题描述】:

我正在为我的网页使用 Asp.Net MVC。我正在尝试向我的网页访问者显示自定义错误消息,以便我添加

    <customErrors mode="On" defaultRedirect="/Error" >
    </customErrors>

到我的 web.config。

我有一个带有索引操作的错误控制器,当我的网页中发生异常时会触发该操作。

但是,当我请求不在服务器上的图像或 javascript 文件时,我的自定义错误也会针对此类请求而命中,并且我的自定义错误页面来自服务器。

我认为这不是解决错误的好方法。因为浏览器在等待图像但响应是网页。

  • 问题 1 - 我想禁用特定文件类型的自定义错误,但我不知道该怎么做。

  • 问题 2 - 如果出现 404,500 等错误,我希望看到与错误相同的响应代码。

但自定义错误响应代码是 302。我希望看到真正的错误代码。

我为我的第一个问题找到了解决方案,但我不知道这是最佳实践 我的图像位于图像文件夹中,因此我为图像文件夹创建了特定配置。

我将此行添加到我的 web.config 中

   <location path="Images">
    <system.web>
      <customErrors mode="Off"></customErrors>
    </system.web>
  </location>
  • 问题 3 - 这是一个好的解决方案吗?

【问题讨论】:

  • 那么如果找不到图片应该提供什么服务!?

标签: asp.net-mvc error-handling custom-error-pages


【解决方案1】:

创建一个订阅Error 事件的HttpModule。检查 StatusCode,如果它的 404(未找到)检查请求的文件。如果是图像,请清除异常并将 StatusCode 设置为 404 以外的其他值,您将不会点击 customError 页面。

关于维护原始状态码,您也可以将其保存在您的HttpModule 中并将其设置回您的错误控制器中。

【讨论】:

    猜你喜欢
    • 2012-05-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-06
    • 1970-01-01
    • 2011-02-09
    • 2011-01-12
    相关资源
    最近更新 更多