Exemplo n.º 1
0
        protected override void RenderContentAreaItem(HtmlHelper htmlHelper, ContentAreaItem contentAreaItem, string templateTag, string htmlTag, string cssClass)
        {
            var dictionary = new Dictionary <string, object>();

            dictionary["childrencustomtagname"] = htmlTag;
            dictionary["childrencssclass"]      = cssClass;
            dictionary["tag"] = templateTag;

            dictionary = contentAreaItem.RenderSettings.Concat(
                (
                    from r in dictionary
                    where !contentAreaItem.RenderSettings.ContainsKey(r.Key)
                    select r
                )
                ).ToDictionary(r => r.Key, r => r.Value);

            htmlHelper.ViewBag.RenderSettings = dictionary;
            var content = contentAreaItem.GetContent();

            if (content != null)
            {
                try
                {
                    using (new ContentAreaContext(htmlHelper.ViewContext.RequestContext, content.ContentLink))
                    {
                        var templateModel = ResolveTemplate(htmlHelper, content, templateTag);
                        if ((templateModel != null) || IsInEditMode(htmlHelper))
                        {
                            if (IsInEditMode(htmlHelper))
                            {
                                var tagBuilder = new TagBuilder(htmlTag);
                                AddNonEmptyCssClass(tagBuilder, cssClass);
                                tagBuilder.MergeAttributes <string, string>(
                                    _attributeAssembler.GetAttributes(
                                        contentAreaItem, IsInEditMode(htmlHelper), (bool)(templateModel != null)));
                                BeforeRenderContentAreaItemStartTag(tagBuilder, contentAreaItem);
                                htmlHelper.ViewContext.Writer.Write(tagBuilder.ToString(TagRenderMode.StartTag));
                                htmlHelper.RenderContentData(content, true, templateModel, _contentRenderer);
                                htmlHelper.ViewContext.Writer.Write(tagBuilder.ToString(TagRenderMode.EndTag));
                            }
                            else
                            {
                                htmlHelper.RenderContentData(content, true, templateModel, _contentRenderer);
                            }
                        }
                    }
                }
                catch (Exception e)
                {
                    _logger.Error("[CustomContentAreaRenderer.RenderContentAreaItem] exception", e);

                    if (PageEditing.PageIsInEditMode)
                    {
                        var errorModel = new ContentRenderingErrorModel(content, e);
                        htmlHelper.RenderPartial("TemplateError", errorModel);
                    }
                }
            }
        }
 private void HandlerError(HtmlHelper helper, IContentData contentData, Exception renderingException)
 {
     if (PrincipalInfo.HasEditAccess)
     {
         var errorModel = new ContentRenderingErrorModel(contentData, renderingException);
         helper.RenderPartial("TemplateError", errorModel);
     }
 }
Exemplo n.º 3
0
 private void HandlerError(HtmlHelper helper, IContentData contentData, Exception renderingException)
 {
     if (PageEditing.PageIsInEditMode)
     {
         var errorModel = new ContentRenderingErrorModel(contentData, renderingException);
         helper.RenderPartial("TemplateError", errorModel);
     }
 }
Exemplo n.º 4
0
 private void HandlerError(IHtmlHelper helper, IContentData contentData, Exception renderingException)
 {
     if (helper.ViewContext.IsInEditMode())
     {
         var errorModel = new ContentRenderingErrorModel(contentData, renderingException);
         helper.RenderPartialAsync("TemplateError", errorModel).GetAwaiter().GetResult();
     }
 }
 private void HandlerError(HtmlHelper helper, IContentData contentData, Exception renderingException)
 {
     if (PrincipalInfo.HasEditAccess)
     {
         var errorModel = new ContentRenderingErrorModel(contentData, renderingException);
         helper.RenderPartial("TemplateError", errorModel);
     }
 }