情况是这样的:
我找不到获取传递给POST操作方法的viewmodel的方法.
- [HttpPost]
- public ActionResult Edit(SomeCoolModel viewmodel)
- {
- // Some Exception happens here during the action execution...
- }
在控制器的可覆盖的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,因为代码执行时发生了异常,并且未返回任何视图.
无论如何,我看到filterContext.Controller.ViewData.ModelState被填充并具有我需要的所有值,但我没有完整的ViewData => viewmodel对象可用.