Create HTML Helpers using the TagBuilder class

Before starting the implementation, there are a few things to know about MVC and TagBuilder and HtmlHelper classes.

Component Overview

TagBuilder

Namespace : System.Web.Mvc

This class provides the methods and properties that allow you to create HTML elements.

HtmlHelper

Namespace : System.Web.Mvc

This class provides methods that make it easy to create HTML code. All methods generate returned HTML code as String.

IHtmlString

Namespace : System.Web

This interface exposes the ToHtmlString method which is used by MVC to render the control in the view.

Implementation

(This article is illustrated with code snippets. Complete sources are available on Github : TagBuilderHtmlHelperTutorial)

We start by creating a new HtmlTag class that implements the IHtmlString interface.

This class HtmlTag encapsulates an instance of TagBuilder that will be used for the creation of HTML code when calling the method ToHtmlString.

We also override the ToString method. The ToString and ToHtmlString methods will return the same result, which is a common practice for HtmlHelper.

We then create several extension methods that use HtmlTag objects :

We add components for Bootstrap :

Firstly, we define a ButtonStyle enum representing the different Bootstrap button classes

Then we add specialized extension methods :

Finally we add some extension methods specific to the WebApp project :

Usage

All sources are available on Github :TagBuilderHtmlHelperTutorial

Category