public HtmlTag VisualizePartial(ModelBindingLog log)
        {
            var title = "Model Binding for " + log.Report.ModelType.FullName;



            var collapsible = new CollapsibleTag(log.Id.ToString(), title);

            var description = Description.For(log.Report.Binder);

            collapsible.AppendContent(new HtmlTag("div").AddClass("model-binder-title").Text("Used " + description.Title));


            if (log.Report.OrderedProperties().Any())
            {
                var report = new ModelBindingHtmlReport();
                log.Report.AcceptVisitor(report);
                collapsible.AppendContent(report.Table);
            }
            else
            {
                var tag = new DescriptionBodyTag(description);
                collapsible.AppendContent(tag);
            }


            return collapsible;
        }
        public override string ToString()
        {
            var tag = new CollapsibleTag(_id, _title);
            tag.AppendContent(_content().ToString());

            return tag.ToString();
        }
        private static HtmlTag toTag(ValueSourceReport report)
        {
            var table = new DetailsTableTag();
            report.Values.OrderBy(x => x.Key).Each(pair => table.AddDetail(pair.Key, pair.Value));

            var tag = new CollapsibleTag(report.ElementId(), report.Header());
            tag.AppendContent(table);

            return tag.PrependAnchor();
        }
        private static HtmlTag toTag(ValueSourceReport report)
        {
            var table = new DetailsTableTag();

            foreach (var key in report.Values.GetAllKeys().OrderBy(x => x))
            {
                table.AddDetail(key, string.Join("; ", report.Values[key]));
            }

            var tag = new CollapsibleTag(report.ElementId(), report.Header());
            tag.AppendContent(table);

            return tag.PrependAnchor();
        }
        // SAMPLE: UsingCollapsibleTag
        public CollapsiblePartialViewModel get_collapsible_partial()
        {
            var inner = new HtmlTag("div");
            for (var i = 0; i < 5; i++ )
            {
                inner.Add("p").Text(Guid.NewGuid().ToString());
            }


            var tag = new CollapsibleTag("acc1", "This is the collapsible tag");
            tag.AppendContent(inner.ToString());

            return new CollapsiblePartialViewModel{
                Tag = tag
            };
        }