public void Should_render_only_its_children()
        {
            var fragment = new HtmlFragment();
            fragment.Children.Add(new HtmlElement("a"));

            fragment.ToString().ShouldEqual("<a></a>");
        }
        /// <summary>
        /// Renders the HTML fragment.
        /// </summary>
        /// <param name="htmlHelper">The HTML helper.</param>
        /// <param name="fragment">The fragment.</param>
        /// <param name="partialViewName">The partial view name.</param>
        /// <param name="useFallback">if set to <c>true</c> [use fallback].</param>
        /// <param name="renderFragmentsWithoutView">if set to <c>true</c> [render fragments without view].</param>
        /// <returns>A HTML-encoded string.</returns>
        public static MvcHtmlString RenderCustomHtmlFragment(this HtmlHelper htmlHelper, HtmlFragment fragment, string partialViewName, bool useFallback = true, bool renderFragmentsWithoutView = true)
        {
            var value = new StringBuilder();

            using (var writer = new StringWriter(value))
            {
                // Try to find a matching partial view
                var viewEngineResult = ViewEngines.Engines.FindPartialView(htmlHelper.ViewContext, partialViewName);

                if (viewEngineResult.View != null)
                {
                    viewEngineResult.View.Render(viewEngineResult, htmlHelper.ViewContext, writer, fragment);
                }
                else
                {
                    // Try to fall back to default view
                    if (useFallback)
                    {
                        return(htmlHelper.RenderCustomHtmlFragment(fragment, renderFragmentsWithoutView));
                    }

                    // Render fragment directly unless otherwise specified
                    if (renderFragmentsWithoutView)
                    {
                        writer.Write(fragment.ToString());
                    }
                }
            }

            return(value.Length <= 0 ? MvcHtmlString.Empty : new MvcHtmlString(value.ToString().Trim()));
        }
        public void Should_render_only_its_children()
        {
            var fragment = new HtmlFragment();

            fragment.Children.Add(new HtmlElement("a"));

            fragment.ToString().ShouldEqual("<a></a>");
        }