public override void OnActionExecuted(ActionExecutedContext filterContext) { // Only export when ModelState is not valid if (!filterContext.ModelState.IsValid) { // Export if we are redirecting if (filterContext.Result is RedirectResult || filterContext.Result is RedirectToRouteResult || filterContext.Result is RedirectToActionResult) { if (filterContext.Controller is Controller controller && filterContext.ModelState != null) { var modelState = ModelStateHelpers.SerializeModelState(filterContext.ModelState); controller.TempData[Key] = modelState; } } } base.OnActionExecuted(filterContext); }
public override void OnActionExecuted(ActionExecutedContext filterContext) { var controller = filterContext.Controller as Controller; if (controller?.TempData[Key] is string serialisedModelState) { // Only Import if we are viewing if (filterContext.Result is ViewResult) { var modelState = ModelStateHelpers.DeserializeModelState(serialisedModelState); filterContext.ModelState.Merge(modelState); } else { // Otherwise remove it. controller.TempData.Remove(Key); } } base.OnActionExecuted(filterContext); }