Search code examples
asp.net-mvctagbuilder

converting string builder to tagbuilder asp.net mvc 4


I am building an HTML Helper and it does the job, but I am using a StringBuilder class to output the following

<div class="panel panel-default">
    <div class="panel-heading">The Panel Title</div>
    <div class="panel-body">
        <h2><span>Content stuff</span></h2>
    </div>
</div>

How do you write an MVC 4 HTML Helper using the TagBuilder class?


Solution

  • TagBuilder span = new TagBuilder("span");
    span.InnerHtml = "Content stuff";
    
    TagBuilder heading = new TagBuilder ("h2");
    heading.InnerHtml = span.ToString();
    
    StringBuilder html = new StringBuilder();
    
    TagBuilder div = new TagBuilder("div");
    div.AddCssClass("panel-heading");
    div.InnerHtml = "The Panel Title";
    html.Append(div.ToString());
    
    div = new TagBuilder("div");
    div.AddCssClass("panel-body");
    div.InnerHtml = heading.ToString();
    html.Append(div.ToString());
    
    div = new TagBuilder("div");
    div.AddCssClass("panel panel-default");
    div.InnerHtml = html.ToString();
    
    return MvcHtmlString.Create(div.ToString());