Search code examples
asp.net-mvcmvchtmlstring

Building HtmlStrings in ASP.NET MVC


I have an extension method that needs to return an HtmlString. The method has a loop which will build the HtmlString, however the HtmlString object has no Append method and does not allow concatenation using the + operator so I am not sure how I would build the HtmlString.

I'd like to use the StringBuilder but it doesn't have a ToHtmlString method...

Any solutions or patterns for this?


Solution

  • I think you want to use TagBuilder. See also Using the TagBuilder Class to Build HTML Helpers like this:

    // Create tag builder
    var builder = new TagBuilder("img");
    
    // Create valid id
    builder.GenerateId(id);
    
    // Add attributes
    builder.MergeAttribute("src", url);
    builder.MergeAttribute("alt", alternateText);
    builder.MergeAttributes(new RouteValueDictionary(htmlAttributes));
    
    // Render tag
    return builder.ToString(TagRenderMode.SelfClosing);