protected virtual bool DispatchPossibleModelException(RenderingErrorModel model, RequestContext context, TextWriter output) { var invalidOp = model.Exception as InvalidOperationException; if (invalidOp?.InnerException != null && invalidOp.InnerException.Message.StartsWith("The model item passed into the dictionary is of type")) { model.Exception = invalidOp.InnerException; if (Context.PageMode.IsPreview || Context.PageMode.IsExperienceEditor) { var viewPath = ResolveModelErrorViewPath(model, context); if (string.IsNullOrWhiteSpace(viewPath)) { CreateViewErrorRenderer().RenderNullModelMessage(new HtmlTextWriter(output), model); } else { RenderView(viewPath, model, context, output); } } return(true); } return(false); }
protected virtual void DispatchException(RenderingErrorModel model, RequestContext context, TextWriter output) { var viewPath = ResolveErrorViewPath(model, context); if (string.IsNullOrWhiteSpace(viewPath)) { throw new Exception("Error occurred while rendering. See the inner exception for details.", model.Exception); } RenderView(viewPath, model, context, output); }
protected virtual string ResolveModelErrorViewPath(RenderingErrorModel model, RequestContext context) { return(ModelErrorViewPath); }
protected virtual bool DispatchPossibleModelException(RenderingErrorModel model, RequestContext context, TextWriter output) { var invalidOp = model.Exception as InvalidOperationException; if (invalidOp == null) return false; if (invalidOp.InnerException != null && invalidOp.InnerException.Message.StartsWith("The model item passed into the dictionary is of type")) { model.Exception = invalidOp.InnerException; if (Context.PageMode.IsPreview || Context.PageMode.IsPageEditor) { var viewPath = ResolveModelErrorViewPath(model, context); if (string.IsNullOrWhiteSpace(viewPath)) CreateViewErrorRenderer().RenderNullModelMessage(new HtmlTextWriter(output), model); else RenderView(viewPath, model, context, output); } return true; } return false; }
protected virtual void DispatchException(RenderingErrorModel model, RequestContext context, TextWriter output) { var viewPath = ResolveErrorViewPath(model, context); if (string.IsNullOrWhiteSpace(viewPath)) throw new Exception("Error occurred while rendering. See the inner exception for details.", model.Exception); RenderView(viewPath, model, context, output); }
protected virtual string ResolveModelErrorViewPath(RenderingErrorModel model, RequestContext context) { return ModelErrorViewPath; }