- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
情况是这样的:
我找不到获取传递给 POST 操作方法的 viewModel
的方法。
[HttpPost]
public ActionResult Edit(SomeCoolModel viewModel)
{
// Some Exception happens here during the action execution...
}
Controller 的可重写OnException
内部:
protected override void OnException(ExceptionContext filterContext)
{
...
filterContext.Result = new ViewResult
{
ViewName = filterContext.RouteData.Values["action"].ToString(),
TempData = filterContext.Controller.TempData,
ViewData = filterContext.Controller.ViewData
};
}
调试代码时,filterContext.Controller.ViewData
为null
,因为代码执行时发生异常并且没有返回 View 。
无论如何,我看到 filterContext.Controller.ViewData.ModelState
已填充并具有我需要的所有值,但我没有完整的 ViewData => viewModel
对象可用。 :(
我想将带有发布的data/ViewModel
的相同View
返回给中心点的用户。希望你明白我的意思。
我还可以遵循其他途径来实现目标吗?
最佳答案
您可以创建一个继承自 DefaultModelBinder 的自定义模型绑定(bind)器并将模型分配给TempData
:
public class MyCustomerBinder : DefaultModelBinder
{
protected override void OnModelUpdated(ControllerContext controllerContext, ModelBindingContext bindingContext)
{
base.OnModelUpdated(controllerContext, bindingContext);
controllerContext.Controller.TempData["model"] = bindingContext.Model;
}
}
并在Global.asax
中注册:
ModelBinders.Binders.DefaultBinder = new MyCustomerBinder();
然后访问它:
protected override void OnException(ExceptionContext filterContext)
{
var model = filterContext.Controller.TempData["model"];
...
}
关于asp.net-mvc - 在 OnException(ExceptionContext filterContext) 内部时,有什么方法可以恢复传递给 POST 操作的模型吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25213998/
finally和 onException是模块 Control.Exception 中的两个函数,它们具有相同的签名但行为不同。 Here是文件。 对于 finally , 它说: finally :
我有带有 OnException 处理程序的 BaseController 类。 public class ApiBaseController : Controller { protected
在单个 Camel 路由中,我有两个 url 调用,调用两个不同的应用程序。 to("http://datasource1/data) //some process to("http://dataso
我有一个带有主线程和 JMS 线程的应用程序,它们通过 ActiveMQ 5.15.11 相互通信。我可以很好地发送消息,但是我想要一种发回状态或错误的方法。我注意到 MessageListener
我对 apache Camel 相当陌生,但我想使用 onException 构建异常处理。由于我想捕获异常并提供响应,但也想将错误记录到外部系统,所以我希望有 2 个 bean 来处理异常。 目前我
我正在尝试测试我的 onException 代码,但它在单元测试下没有触发。我可以 doCatch() 路由中的异常,但否则它只是传递回单元测试代码。我将其归结为硬编码的 throwException
我想捕获路由中的所有异常。 我添加这个 OnExeption : onException(Exception.class).process(new MyFunctionFailureHandler()
我有以下自定义方面,并尝试在项目和类级别应用它。在所有情况下,即使是有意除以零,也永远不会调用 OnException 方法。我做错了什么? [Serializable] public class A
我在 JPA 中使用 Camel 2.10。 在我的上下文中,我有 2 条路线。 路由 1 从 JPA 端点(db 表)消费,进行一些处理(在 bean 中),然后将消息转发到路由 2。如果在处理过程
我试图在全局 onException 中捕获我自己的异常。在捕获 Jaxb 异常后,我抛出了异常。但是 CustomException 不会被 onException 捕获 onException(E
我正在使用 Delphi 7 并尝试处理程序运行期间抛出的所有可能的异常。我使用了 Application.OnException := HandlerProcedure;处理异常,但当异常发生时,H
我正在写来自 Camel 和 Spring 的世界! 我正在使用此 recipe 以编程方式添加路由. 基本上,您获取 Camel 上下文并使用文件添加路线。 这就是问题: 在运行时添加的路由不会触发
我正在尝试使用 ExceptionFilterAttribute 为 Web Api 实现异常处理。我已经继承了ExceptionFilterAttribute 类并覆盖了onException 方法
我在 Selenium 测试中使用自定义 WebDriverEventListener 来进行日志记录和屏幕截图。效果很好: 例如,当在浏览器窗口中找不到某个元素时,网络驱动程序会抛出异常,并正确触发
我在 Camel 环境中遇到onException问题。我使用的是通用错误处理程序,它会在发生异常时尝试使用xpath从交换中提取其他错误信息。 onException包含try/catch子句,可防
我正在探索一些 AOP,看来 .NET PostSharp 是可行的方法。 我想在发生异常时对数据库做一些简单的记录。然而,我发现很难找到任何超越基础知识的使用 PostSharp 的真正可靠的例子。
我有一个路由,doTry() - doCatch() 对用于特定路由和一般的 onException()。 onException(Exception.class) .handled(true
有什么区别: ... 和: ... 根据 this article ,结合使用它们是一个“强大的组合”。怎么会这样?他们各自承担什么角色,他们如何相互补充? 最佳答案 err
在这里尝试理解 MVC 管道: 顺序好像是这样的: 授权过滤器 OnActionExecuting Action 执行 OnActionExecuted OnResultExecuting 创建操作结
我有以下代码: [Serializable] class ExceptionAspectHandler:OnExceptionAspect { public overr
我是一名优秀的程序员,十分优秀!