- r - 以节省内存的方式增长 data.frame
- ruby-on-rails - ruby/ruby on rails 内存泄漏检测
- android - 无法解析导入android.support.v7.app
- UNIX 域套接字与共享内存(映射文件)
我的 web.config 中有以下内容:
<customErrors mode="On" defaultRedirect="Error">
<error statusCode="404" redirect="Error/NotFound" />
</customErrors>
我有一个
[HandleError]
在我的 HomeController 类的顶部。为了进行测试,我创建了一个简单地抛出异常的操作。 .它重定向到我的
ErrorController/Index
方法,但是当它到达我的绑定(bind)到 HandleErrorInfo 的 View 时,我的模型为空,所以我以某种方式丢失了对错误的引用。
我确信它与重定向中丢失的错误有关,所以我想看看我是否遗漏了什么,以及是否有人建议我可以在其中查看显示 Stacktrace 和错误消息的 View 。
最佳答案
我可以看出误解。您想要执行 MVC
操作并重定向
到 Controller 操作。
但是 defaultRedirect
本身是一个 Web Form
约定,因此受到限制。当你重定向到另一个 Controller 时,你将失去你的 HttpContext
,从而失去你的 HandleErrorInfo
对象
您的 [HandleError]
属性需要一个 View
来将其错误消息定向到。按照上面的示例,我假设您的 ErrorController
有一个 Views/Error
文件夹,并且其中有一个 Index
View 。如果你想让你的 Filter Context 发送一个 HandleErrorInfo
对象到那个 View ,
试试这个语法:
[HandleError(View="~/Views/Error/Index")]
Public class HomeController : Controller
但是日志记录呢?!?!?
我怀疑您的意图更多 不仅仅是向用户显示错误堆栈。事实上,我怀疑你根本没有这样的意图。我怀疑您的真正目的是记录您的错误(可能是到数据库)并向您的用户显示一些乏味的消息。
到目前为止我所解释的是“在我看来什么是显示未处理异常的最佳[方式]”。 [HandleError]
属性对此很有帮助。
但是当您想进入下一步(记录错误)时,您有几个选择:
1) Override your base controller's On Exception method ;创建您自己的 Controller
继承自 MVC Controller 类,但覆盖 On Exception 方法。这种方法可以与 [HandleError] 属性结合使用
2) Create a custom exception handler创建您自己的记录错误的异常处理程序。然后,您的异常处理程序可以调用选择的 View ,或者可以与 [HandleError(order=2)]
一起工作,因为过滤器属性可以采用顺序参数应用优先级。
Nitin Sawant 询问错误 View 是什么样的。
@model System.Web.Mvc.HandleErrorInfo
<h2>Exception details</h2>
<p> Controller: @Model.ControllerName </p>
<p> Action: @Model.ActionName </p>
<p> Exception: @Model.Exception </p>
关于c# - 在我看来,在 ASP.NET MVC 中什么是最好的显示未处理的异常?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16312588/
#include #include #include "mainwindow.hpp" #include "../RegisterOfErrors.hpp" #include extern st
我有一个 Activity ,您可以在其中绘制位图,并使用 Intent 将其发送到下一个 Activity 并将其放入其中的 ImageView 中。由于某种原因,它不会产生错误,但也不会将图像设置
我正在使用 multiprocessing.pool 并行执行多个集成。 在此程序中,我通过生成 dW 3D 数组来积分不同噪声实现的运动方程。程序的第一部分只是参数的定义和计算所需数组的生成。 我在
作为我们的检测工具套件的一部分,我们有一个静态预传递,它可以修改类的某些方法,然后使用用户定义的属性标记这些方法。当应用程序运行时,如果类文件直接呈现给transform()方法,即它是类的第一次加载
我使用 JQuery 创建了一个很好的工具提示框,并且使用了一些在所有浏览器中都运行良好的插件。但是当我将组件放入更新面板时问题就开始了,我通过显示一些代码来解释这一点:
我开始学习 spring-boot 来开发 Web 应用程序。 我使用的IDE是IDEA,服务器是Tomcat。 使用IDEA内置的tomcat并运行项目时,运行良好。 但是,使用下载的tomcat,
我知道这有点笼统,但它一直困扰着我。我一直在使用 Git 远程处理许多 Rails 项目,每次我执行 git pull 并看到有某种数据更改(迁移或 schema.rb 更改)时,我都会执行 rake
我是一名优秀的程序员,十分优秀!