Skip to Content
ASP.NET 4 24-Hour Trainer
book

ASP.NET 4 24-Hour Trainer

by Toi B. Wright
July 2010
Beginner
552 pages
10h 14m
English
Wrox
Content preview from ASP.NET 4 24-Hour Trainer

Chapter 10B. Custom HTML Helpers in MVC

There is a large set of HTML Helpers that come with the ASP.NET MVC framework. Nevertheless, you can write your own custom HTML Helpers. In this lesson I show you how to write both a simple HTML Helper and how to write an HTML Helper using an extension method.

CREATING AN HTML HELPER

The ASP.NET MVC framework does not come with an HTML Helper to generate an ordered list. This is the HTML for a sample ordered list:

<ol>
    <li>Item One</li>
    <li>Item Two</li>
    <li>Item Three</li>
</ol>

The following class builds a string to output an MvcHtmlString that contains the HTML required to render an ordered list:

public class OrderedListHelper
{
    public static MvcHtmlString OrderedList(Object items)
    {
       var builder = new StringBuilder();
       builder.Append("<ol>");
       var enumItems = (IEnumerable<Object>)items;
       foreach (Object item in enumItems)
           builder.AppendFormat("<li>{0}</li>",
               HttpUtility.HtmlEncode(item.ToString()));
       builder.Append("</ol>");
       return MvcHtmlString.Create(builder.ToString());
     }
}

Note

An MvcHtmlString is an HTML-encoded string that should not be encoded again.

This is the code the view uses to call this new static method:

<%: OrderedListHelper.OrderedList(ViewData.Model) %>

CREATING AN HTMLHELPER EXTENSION METHOD

A better way to create a new HTML Helper is to use an extension method. An extension method is a new method for an existing class, and in order to create one you need to do two things:

  1. Create a static class with a static method.

  2. Set the type of the ...

Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.

Read now

Unlock full access

More than 5,000 organizations count on O’Reilly

AirBnbBlueOriginElectronic ArtsHomeDepotNasdaqRakutenTata Consultancy Services

QuotationMarkO’Reilly covers everything we've got, with content to help us build a world-class technology community, upgrade the capabilities and competencies of our teams, and improve overall team performance as well as their engagement.
Julian F.
Head of Cybersecurity
QuotationMarkI wanted to learn C and C++, but it didn't click for me until I picked up an O'Reilly book. When I went on the O’Reilly platform, I was astonished to find all the books there, plus live events and sandboxes so you could play around with the technology.
Addison B.
Field Engineer
QuotationMarkI’ve been on the O’Reilly platform for more than eight years. I use a couple of learning platforms, but I'm on O'Reilly more than anybody else. When you're there, you start learning. I'm never disappointed.
Amir M.
Data Platform Tech Lead
QuotationMarkI'm always learning. So when I got on to O'Reilly, I was like a kid in a candy store. There are playlists. There are answers. There's on-demand training. It's worth its weight in gold, in terms of what it allows me to do.
Mark W.
Embedded Software Engineer

You might also like

ASP.NET 4 24-Hour Trainer

ASP.NET 4 24-Hour Trainer

Toi B. Wright

Publisher Resources

ISBN: 9780470596913Purchase bookExamplesErrata